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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡盼盼 中级黑马   /  2013-8-28 22:02  /  3495 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Random random = new Random(10)  中的10什么意思,怎么用

9 个回复

倒序浏览
Random r = new Random();
            int num = r.Next(1,7);
            int num1 = r.Next(1, 7);
            int num2 = r.Next(1, 7);
            int num3 = r.Next(1, 7);
            int num4 = r.Next(1, 7);
            Console.WriteLine(num);
            Console.WriteLine(num1);
            Console.WriteLine(num2);
            Console.WriteLine(num3);
            Console.WriteLine(num4);
            Console.ReadKey();
伪随机数,你加了参数,你不管怎么运行,都是那几个数。
而你不加参数,它每次随机的数都不一样。
回复 使用道具 举报
Random 类是用于生成一个伪随机数,new Random(10)  10是一直产生随机数的种子
比如说
Random random = new Random(10)
int num1 = r.Next(1, 7);
Random random = new Random(10)
int num2 = r.Next(1, 7);
num1和num2 的值会一样,而且循环出现那几序列个值,因为我把它产生的随机数的种子都定为了10,
由同一个种子创建的,对他们以同样的顺序调用方法,则他们会产生相同的序列值
这种情况,Random 产生的数字并不是真正随机的,而是一种伪随机

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报
    Random类有两个构造器,一个使用默认的种子,另一个需要显式传入一个long型整数种子,也就是程序中的"10"作为Random对象的种子。
    如果一个类的两个实例是同一个种子创建的,那么在以相同顺序调用方法时,会产生相同的数字序列。推荐使用系统当前时间作为Random对象种子,如下代码所示:
  1. Random random = new Random(System.currentTimeMillis());
复制代码

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报
作为随机种子用,为的就是产生随机数。而为了每次取得随机数不同,随机种子必须也要不同才行。如果用构造一个指定种子的Random,则所指定的种子相同(本例为10),且调用的方法相同,则产生的随机数也相同。
回复 使用道具 举报
帕格尼尼的眼泪 发表于 2013-8-28 23:23
Random 类是用于生成一个伪随机数,new Random(10)  10是一直产生随机数的种子
比如说
Random random = new ...

谢谢{:soso_e100:}
回复 使用道具 举报
心动行动 发表于 2013-8-28 22:55
Random r = new Random();
            int num = r.Next(1,7);
            int num1 = r.Next(1, 7);


    Random r = new Random(10);
             int num = r.Next(1, 7);
             int num1=r.Next(1,7);
             int num2 = r.Next(1, 7);
             int num3 = r.Next(1, 7);
             int num4 = r.Next(1, 7);
             Console.WriteLine(num);
             Console.WriteLine(num1);
             Console.WriteLine(num2);
             Console.WriteLine(num3);
             Console.WriteLine(num4);
             Console.ReadKey();
为什么第一个是6  其他几个都是5?不是太懂

回复 使用道具 举报
泡沫之夏 发表于 2013-8-29 00:26
作为随机种子用,为的就是产生随机数。而为了每次取得随机数不同,随机种子必须也要不同才行。如果用构造一 ...

O(∩_∩)O谢谢
回复 使用道具 举报
胡盼盼 发表于 2013-8-29 11:39
Random r = new Random(10);
             int num = r.Next(1, 7);
             int num1=r.Next( ...

你加的参数(种子)不一样,随机出来的数就不一样。
回复 使用道具 举报
心动行动 发表于 2013-8-29 12:57
你加的参数(种子)不一样,随机出来的数就不一样。

奥,明白 {:soso_e179:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马