我想写一个彩票抽奖程序,需要从1-2000000范围内随机选择20000个数字.代码如下:
Random r = New Random(seed); //seed is a 6 digits e.g 123456
int i=0;
while(true){
r.Next(2000000);
i++;
if(i>=20000)
break;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:
r.Next()?.NET Random类在生成随机数方面做得相当不错.但请注意,如果您使用相同的数字播种,则每次都会获得相同的"随机"数字.如果您不希望此行为不提供种子.
如果您使用的是比内置.NET更多的随机数生成器,那么请看一下random.org.这是获得真正随机数的最佳网站之一 - 我相信有一个API.以下是他们网站的引用:
RANDOM.ORG为互联网上的任何人提供真正的随机数.随机性来自大气噪声,对于许多目的而言,其优于通常在计算机程序中使用的伪随机数算法.人们使用RANDOM.ORG举办绘画,彩票和抽奖活动,驾驶游戏和赌博场所,科学应用以及艺术和音乐.该服务自1998年以来一直存在,由爱尔兰都柏林三一学院计算机科学与统计学院的Mads Haahr博士建造.今天,RANDOM.ORG由Randomness and Integrity Services Ltd.运营.
最后,Random.Next()是exlusive,因此永远不会调用您提供的上限值.如果您希望2000000在那里,您可能需要适当调整您的代码.
| 归档时间: |
|
| 查看次数: |
489 次 |
| 最近记录: |