coz*_*zzy 5 c# random statistics probability
我试图从4个数字中随机选择.我需要比较这两种算法的概率.
1#
int a = random.Next(0, 4);
if (a = 0)
statement1
if (a = 1)
statement2
if (a = 2)
statement3
if (a = 3)
statement4
Run Code Online (Sandbox Code Playgroud)
2#
int a = random.Next(0, 1000)
if (a < 250)
statement1
if (a >= 250 && a < 500)
statement2
if (a >= 500 && a < 750)
statement3
if (a >= 750)
statement4
Run Code Online (Sandbox Code Playgroud)
如果我认为它是相同的,我是对的吗?第一个代码中statement1的概率是1/4,第二个代码中的概率是250/1000,所以它也是1/4.但有人告诉我,当我使用更大范围的随机数时,如代码2#,它在统计上更准确.我已经制作了多次重复这些代码的项目,但我不确定它能给我看一些结果.
它们是完全等价的(除了第一个由于在 if 子句中使用=而不是 而无法编译这一事实)。==
为了证明这一点,看看 的实现Random.Next(int, int)。按照你的价值观,Random.Next(0, 4)就是
(int) (Random.Sample() * 4)
Run Code Online (Sandbox Code Playgroud)
和
Random.Next(0, 1000)是
(int) (Random.Sample() * 1000)
Run Code Online (Sandbox Code Playgroud)
,其中Random.Sample()是返回随机双精度值的私有方法。
现在应该很容易看出,当Random.Next(0, 4)返回0 到 250 之间的数字时,将返回0 。Random.Next(0, 1000)
| 归档时间: |
|
| 查看次数: |
934 次 |
| 最近记录: |