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
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
如果我认为它是相同的,我是对的吗?第一个代码中statement1的概率是1/4,第二个代码中的概率是250/1000,所以它也是1/4.但有人告诉我,当我使用更大范围的随机数时,如代码2#,它在统计上更准确.我已经制作了多次重复这些代码的项目,但我不确定它能给我看一些结果.
它们是完全等价的(除了第一个由于在 if 子句中使用=而不是 而无法编译这一事实)。==
为了证明这一点,看看 的实现Random.Next(int, int)。按照你的价值观,Random.Next(0, 4)就是
(int) (Random.Sample() * 4)
和
Random.Next(0, 1000)是
(int) (Random.Sample() * 1000)
,其中Random.Sample()是返回随机双精度值的私有方法。
现在应该很容易看出,当Random.Next(0, 4)返回0 到 250 之间的数字时,将返回0 。Random.Next(0, 1000)