我想隨機選擇2或4,其中2的概率爲0.9,4的概率爲0.1。我該怎麼做呢?java中的隨機數字(數字2或4)
回答
您可以使用Math.random()
或java.util.Random
來計算隨機數。
如果您需要更好的安全分佈比使用SecureRandom
。
實施例:
public int randomFunc()
{
return Math.random() > 0.1 ? 2 : 4;
}
或
public int randomFunc()
{
final Random randomGenerator = new Random();
int chance = randomGenerator.nextInt(10);
return chance > 0 ? 2 : 4;
}
這樣做是:
- 計算0(inclusiv)和1(不包括)
- 如果之間的隨機數該數字在0和0.1之間(不包括),而不是數字0
- 否則它是2
與整數第二個做的:
- 計算一個隨機整數如果數字爲0,則返回4
- 別的0之間和9
- 返回2
不必要的乘法100 –
我強烈建議使用'java.util.Random'(或'SecureRandom')而不是'Math.random()' –
謝謝。我在另一個問題上的建議是使用'Math.random'而不是'java.util.Random'。但對於這個問題'SecureRandom'我認爲是過度殺傷。 – Andrei
開始於Math.random
以正號返回一個double值,大於或等於0.0且小於1.0。返回值是從該範圍內以近似均勻分佈僞隨機選擇的。
利用這些信息,你應該能夠設計出一個簡單的if-else
聲明...
int result = 2;
double value = Math.random();
if (value < 0.1) {
result = 4;
}
例如...
下面的函數將實現你想要什麼。
public int GetRandom()
{
double random = Math.random() * 100 + 1;
int num = (int)random;
if(num <= 10)
return 4;
return 2;
}
你的代碼不能編譯。修理它。 –
對不起,右括號不正確 –
- 1. 2隨機字母后跟4位數字
- 2. 生成Java Card中兩個數字之間的隨機數字
- 3. ActionScript 2在4個數字之間隨機編號
- 4. C中的隨機數字#
- 5. C中的隨機數字
- 6. flex中的隨機數字
- 7. Unity3D中的隨機數字?
- 8. Xor的隨機數字或UUID
- 9. 隨機數字序列,停止2個相同的數字
- 10. 隨機4位數字不包括數字8和9
- 11. 2個隨機數字0-100
- 12. 使用隨機數字的Java遊戲
- 13. 生成唯一的隨機數字JAVA
- 14. 計數隨機數組中的數字
- 15. 使用Java與數字不重複創建一個4位數的隨機數
- 16. 隨機數字/字母值
- 17. ObjectiveC隨機數字
- 18. 隨機數字JavaScript
- 19. 從隨機字母數字字符串的大寫隨機數字
- 20. sed的風格替換隨機字母,數字字母隨機數字
- 21. 在隨機數組中使用數字隨機數
- 22. 隨機數字符串不給我只隨機數字
- 23. 將數字插入隨機數組中的隨機位置
- 24. 2個隨機數組的交集 - Java
- 25. 隨機數字的概率
- 26. Javascript的隨機數字?
- 27. Page_Load上的隨機數字
- 28. 隨機函數隨機化字母
- 29. .NET:內存中的隨機數或可用字節數?
- 30. 動作2:從數組中挑選3個隨機數字
這絕對不是隨機的......
顯示你所做的,我們不是你的家庭作業服務。 – jwenting
@jwenting爲什麼它不是隨機的?你能預測每次產生什麼數字嗎?我不信。這只是有點不同,因爲OP希望數字不是以均勻分佈生成的(如'Math.Random()'),數字2會更頻繁地出現。 – Templar
這不是隨機的,因爲產生的數字和頻率分佈都不是隨機的。獲得2的機會有90%,獲得4的機率爲10%。 – jwenting