A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Doublekill 中级黑马   /  2014-3-23 18:28  /  5708 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Doublekill 于 2014-3-23 20:17 编辑

// 摘要:
        //     使用与时间相关的默认种子值,初始化 System.Random 类的新实例。
        public Random();
        //
        // 摘要:
这是定义上面的:      
  //     使用指定的种子值初始化 System.Random 类的新实例。
        //
        // 参数:
        //   Seed:
        //     用来计算伪随机数序列起始值的数字。如果指定的是负数,则使用其绝对值。
        public Random(int Seed);

求举个简单的例子怎么用它

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

6 个回复

倒序浏览
随机数其实根据特定规则计算出来串数字
例:
原始数字:a 默认 1
计算规则:*3
运行
Random theRandom=new Random(int Seed)
生成随机数 seed*3 , seed*6 , seed*9...根据seed值变化
Random theRandom=new Random()
运用默认值1
运行结 3,6,9...
般seed值设当前时间

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
threederek 发表于 2014-3-23 18:38
随机数其实根据特定规则计算出来串数字
例:
原始数字:a 默认 1

Random r;
r=new Random(DateTime.Now);//这个地方能这样写吗?
int a=r.next(0,9);
回复 使用道具 举报
Doublekill 发表于 2014-3-23 19:17
Random r;
r=new Random(DateTime.Now);//这个地方能这样写吗?
int a=r.next(0,9);

可以空着,但是注意不要放在循环里
回复 使用道具 举报
茹化肖 发表于 2014-3-23 20:10
可以空着,但是注意不要放在循环里

恩,我刚才就出现这个问题了。。三Q
回复 使用道具 举报
Doublekill 发表于 2014-3-23 19:17
Random r;
r=new Random(DateTime.Now);//这个地方能这样写吗?
int a=r.next(0,9);

一般都是空着
回复 使用道具 举报
cancle 中级黑马 2014-3-23 20:48:44
7#
额,一般创建随机数的对象,都是放外面,放外面的话会发生出现的随机数都是相同的。你可以试试
如果写到外面,随机数是很小几率重复的
  1. Random r = new Random();
  2.             int[] nums = new int[10];
  3.             for (int i = 0; i < nums.Length; i++)
  4.             {
  5.                 nums[i] = r.Next(0, 100);//出来的随机数是0-99的随机数
  6.             }
  7.             foreach (var item in nums)
  8.             {
  9.                 Console.Write(item + " ");
  10.             }
  11.             Console.ReadKey();
复制代码

但你要是写到for循环里面,随机数在相同的时间内的随机数是相同的,好比下面的代码:
  1. int[] nums = new int[10];
  2.             for (int i = 0; i < nums.Length; i++)
  3.             {
  4.                 Random r = new Random();
  5.                 nums[i] = r.Next(0, 100);//出来的随机数是0-99的随机数
  6.             }
  7.             foreach (var item in nums)
  8.             {
  9.                 Console.Write(item + " ");
  10.             }
  11.             Console.ReadKey();
复制代码

这样的话,随机数都是相同的,你可以复制上去试试看。。这也是为什么叫它伪随机。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马