虽然我正在尝试为自己编写基本的彩票应用程序(注意我是编程特别是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
我真的想知道我们如何测试它?我们可以依靠这个测试吗?请加油我
答案 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的概率略小于其他数字。