|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
.NET专区
→
『 C# 论坛 』
→ C#中如何生成一串不同的随机数?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
4529
人关注过本帖
标题:
C#中如何生成一串不同的随机数?
只看楼主
加入收藏
有敌手
等 级:
新手上路
帖 子:41
专家分:0
注 册:2008-2-12
楼主
收藏
问题点数:0 回复次数:3
C#中如何生成一串不同的随机数?
我用
int []i = new int[20],j;
Random r = new Random();
for(j = 0; j < 20; j++)
i[] = r.next(0,20);
for(int j = 0; j < 20; j++)
Console.writeline(i[j]);
但是输出来的数字都是一样的。。。
搜索更多相关主题的帖子:
随机数
2008-10-23 19:35
举报帖子
使用道具
赠送鲜花
小仙
来 自:光之谷
等 级:
贵宾
威 望:
39
帖 子:1812
专家分:1
注 册:2008-8-8
第
2
楼
收藏
得分:0
两个种子用时间取异MSDN的说法,自己去查下。
仁者乐膳,智者乐睡。我都爱~
2008-10-23 20:13
举报帖子
使用道具
赠送鲜花
铲铲
等 级:
贵宾
威 望:
34
帖 子:506
专家分:0
注 册:2006-5-2
第
3
楼
收藏
得分:0
Random对象如果使用默认无参数的构造函数,种子可能相同,因而产生的随机数就会相同。
虽然,在MSDN中有释义,如果使用无参数的构造函数,则使用时间相关的种子,但不知道微软所谓时间相关的种子在多大程度上和时间相关,有可能其时间尺度很大,在两次初始化对象是,种子并没有发生变化,生成随机数即相同。
要使得Random生成符合要求,我们可以自己创造种子:
Random rand = new Random(unchecked((int)DateTime.Now.Ticks));
unchecked关键字告诉运行时环境不要检查数字运算溢出,从而生成一个int整形作为种子。这个数字每100毫微秒变化一次。
Random产生的伪随机数足够日常使用,但如果作为密码算法的一部分,它的函数显得太简单,所产生的伪随机数不够随机。如果你要生成适合加解密算法的足够强度的伪随机数,则使用从 System.Security.Cryptography.RandomNumberGenerator 派生的类,如 System.Security.Cryptography.RNGCryptoServiceProvider。
另外要注意一点!Random应在尽可能大的范围内初始化,如在一个类的初始化时即初始化Random,然后再该类的任何地方使用它,直到该类不再使用而销毁,而不要在每次需要使用随机数时才初始化它。
收到的鲜花
小仙
于
2008-10-23 21:19
送鲜花
49朵 附言:我很欣赏~
铲铲是也
2008-10-23 21:16
举报帖子
使用道具
赠送鲜花
小仙
来 自:光之谷
等 级:
贵宾
威 望:
39
帖 子:1812
专家分:1
注 册:2008-8-8
第
4
楼
收藏
得分:0
[bo][un]铲铲[/un] 在 2008-10-23 21:16 的发言:[/bo]
另外要注意一点!Random应在尽可能大的范围内初始化,如在一个类的初始化时即初始化Random,然后再该类的任何地方使用它,直到该类不再使用而销毁,而不要在每次需要使用随机数时才初始化它。
就是说要在一个时间差内获取种子,这样好理解些。铲铲去看下我发的帖子看有没什么问题~
https://bbs.bccn.net/thread-236463-1-1.html
写随机数的。
仁者乐膳,智者乐睡。我都爱~
2008-10-23 21:22
举报帖子
使用道具
赠送鲜花
4
1/1页
1
快速回复:
C#中如何生成一串不同的随机数?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.012462 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved