有关Rander生成随机数的问题

 1 首先我们说的是要生成一个随机数要求传入两个参数。一个表示生成的个数,另外一个表示生成的长度
 2 1.
 3 public void shengchengsuijishu(int lenght)
 4 {
 5 char[] a={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','9','8','7','6','5','4','3','2','1'};
 6 Rander rd=new Rander();
 7 for(int j=1;j<lenght;j++)
 8 {
 9 int i=rd.Next(1,36);//随机生成一个1,36之间的数字
10 stringbulider sb=new stringbulid();
11 sb.appand(a[i-1]);
12 }
13 }
14 注意的就是Rander rd=new Rander();不能够放到for循环内。因为随机数的生成和时间和种子有关。
15 如果放到for循环类就会出现for循环中每次产生的随机数都是一样子的。种子默认是一样的。
16 所以说上面写法是正确的。
17 但是同样也能够这样子写
18 
19 2.
20 public void shengchengsuijishu(int lenght)
21 {
22 char[] a={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','9','8','7','6','5','4','3','2','1'};
23 for(int j=1;j<lenght;j++)
24 {
25 Rander rd=new Rander(j);//这样就为rander设置了种子。
26 int i=rd.Next(1,36);//随机生成一个1,36之间的数字
27 stringbulider sb=new stringbulid();
28 sb.appand(a[i-1]);
29 }
30 }
31 这样第二种方法也是正确的了。
原文地址:https://www.cnblogs.com/sdya/p/3690809.html