我有一個百分比,例如40%
。編號喜歡「擲骰子」,結果是基於概率。 (例如40%
機率將是true
)。以概率生成true或false布爾值
回答
你可以嘗試這樣的事情:
public static bool NextBool(this Random random, double probability = 0.5)
{
if (random == null)
{
throw new ArgumentNullException(nameof(random));
}
return random.NextDouble() <= probability;
}
由於Random.NextDouble()
回報均勻分佈在[0..1)
範圍(僞)隨機值,你可以嘗試
// Simplest, but not thread safe
private static Random random = new Random();
...
double probability = 0.40;
bool result = random.NextDouble() < probability;
我希望我可以兩次,一次是正確答案,另一次是在一個時間間隔內使用正確的數學符號。 – EJoshuaS
超級挑選:我相信'<'在這裏比'<='更合適,因爲您希望'probability = 0.0'和'probability = 1.0'的邊界情況轉化爲「never」和「always」。使用'<=',當'概率= 0.0'時''result'有一個非零的機會。 –
@Mark Dickinson:謝謝你!我同意你的反例:通常包含/排除點不起任何作用,因爲* exact *值的概率是* zero *。然而,我們沒有* random * NextDouble()和* probability = 0.0的*完全*均勻分佈是一個反例。我編輯了我的答案 –
您可以使用內置的Random.NextDouble()
:
返回一個隨機浮點數大於或等於0.0,且小於1.0
然後可以測試數量是否大於概率值大於:
static Random random = new Random();
public static void Main()
{
// call the method 100 times and print its result...
for(var i = 1; i <= 100; i++)
Console.WriteLine("Test {0}: {1}", i, ForgeItem(0.4));
}
public static bool ForgeItem(double probability)
{
var randomValue = random.NextDouble();
return randomValue <= probability;
}
注意到相同Random
實例必須使用。 Here is the Fiddle example。
簡單Unity解決方案:
bool result = Random.Range(0f, 1f) < probability;
- 1. MYSQL布爾值TRUE或FALSE
- 2. 檢查布爾值是true或false
- 3. Javascript布爾值:false && true true results in true
- 4. 生成一個隨機布爾值70%True,30%false
- 5. 生成概率分佈
- 6. 返回True/False布爾值http請求
- 7. 重命名true false布爾值
- 8. 關於布爾值的證明,false = true
- 9. 獲取布爾值爲true或false,而不是1或0
- 10. 布爾值如何從此語句返回true或false
- 11. 如何讓NSJSONSerialization輸出一個布爾值爲true或false?
- 12. 讀取爲true或false的Mysql存儲布爾值
- 13. 是一個布爾實例變量默認值true或false
- 14. LINQ查詢其中布爾值是true或false
- 15. 如何在java中檢查multible布爾值true或false>
- 16. reader.Read()評價一個布爾值true或false
- 17. loadJSON將布爾值從mysql轉換爲true或false
- 18. numpy生成離散概率分佈
- 19. 布爾當選擇true時帶回true和false值
- 20. 登錄過程中的回調,以便將布爾值更改爲true或false
- 21. 布爾值Actionmailer True True
- 22. false或true!= true或false!= true ||假
- 23. 以固定概率生成隨機數
- 24. 以概率生成隨機數
- 25. 優雅布爾LINQ查詢靈活主動= TRUE或Active = true或false
- 26. SQL Reporting Services布爾參數(True/False/All(?))
- 27. c#布爾值:如果第一個布爾值爲true並且第二個值爲false,則返回true
- 28. Spring @RequestParam映射基於1或0而不是true或false的布爾值
- 29. Python,SimPy:如何從三角概率分佈生成一個值?
- 30. VB6中布爾值爲False和True的整數值是多少?
'隨機隨機=新的隨機(); ...布爾結果= random.NextDouble()<= 0.40;' –
我有概率僞造系統。當我點擊僞造一件物品時,確定物品會被僞造,或僞造失敗。這就是我正在做的事情。 –
還有一個遊戲開發者的堆棧交換。在那裏負責統一專家。只是想我提到它。 – stevenvanc