随机的m& max值,启发我

时间:2013-04-27 11:24:55

标签: c#

虽然我正在尝试为自己编写基本的彩票应用程序(注意我是编程特别是c#的初学者),StackOverflow上的一个人对我说了

rnd.Next(1, 50 * 7) % 50  // Randoming like that will be increase to chance of getting 1 and 49
rnd.Next(1, 50 ) // instead of this 

我真的想知道我们如何测试它?我们可以依靠这个测试吗?请加油我

1 个答案:

答案 0 :(得分:5)

最后一个例子将在1到49(含)之间得到均匀分布。也就是说,在(和包括)1和49之间的任何数字的机会相同。

第一个例子更棘手。它将首先创建1到349之间的任何数字。模50将数字映射到0-49区间(包括0和49)。

我们现在介绍获得0的可能性 - 如果随机数是50,100,150,200,250或300。 我们也可以得到1-49到N + 0,N + 50,N + 100,N + 150,N + 200,N + 250,N + 300

也就是说,有6次机会获得0和7获得任何其他数字。

结论是,第一个例子将给出0-49(含)之间的随机数,0的概率略小于其他数字。