【发布时间】:2012-10-31 18:37:08
【问题描述】:
我正在尝试为游戏创建基于百分比的概率。例如。如果一件物品有 45% 的几率造成暴击,那一定意味着 100 次命中中有 45 次是暴击。
首先,我尝试使用一个简单的解决方案:
R = new Random();
int C = R.Next(1, 101);
if (C <= ProbabilityPercent) DoSomething()
但是在 100 次迭代中,例如48%,它给出了 40-52 分(满分 100 分)。 49、50、51 也是如此。 所以,这些“百分比”之间没有区别。
问题是如何设置例如百分比50,并随机获得 100 个中的 50 个? 有机会增加找到稀有物品的机会是一件非常重要的事情。所以 1% 的增益是明智的,因为现在不是。
对不起,我的英语不好。
【问题讨论】:
-
你必须明白“严格 50% 随机”不是随机的。
-
确保您了解随机性。
-
这意味着如果 a 有 50% 的机会在 10 位的二进制序列中获得“1”,它将是 0,1,0,0,0,1,1,0,1, 1 为例。但仍然 - 5个“1”。随机发生,严格计数。
-
@maelstrom:那么这并不是随机的。它是在池中随机的,而不是真正随机的。像一副牌一样随机,不像掷骰子那样随机。
-
另外;必须在 哪个 窗口中测量 100 个角色?如果它是一个 滑动 窗口,那么唯一有效的解决方案是不断重复相同的 100 个结果 - 非常非随机。
标签: c# probability probability-theory