C#在循环中使用Random时生成的随机数相同的解决办法
程序员文章站
2022-06-29 20:46:17
场景 在循环中使用 Random y = new Random(); 生成随机数时每次循环生成的数是一样的。 for (int i = 1; i < 20000;i++ ) { Random y = new Random(); PointPairList list1 = new PointPairL ......
场景
在循环中使用
random y = new random();
生成随机数时每次循环生成的数是一样的。
for (int i = 1; i < 20000;i++ ) { random y = new random(); pointpairlist list1 = new pointpairlist(); for (int j = 0; j < 50; j++) { double x = j; double y1 = y.nextdouble() * 1000; list1.add(x, y1); //添加一组数据 } lineitem mycurve = mypane.addcurve("曲线"+i, list1, color.red, symboltype.none); }
想要每次循环生成不一样的随机数。
实现
可以查看random的定义
除了使用默认的random()构造方法,还可以使用指定的种子值初始化 system.random 类的新实例。
for (int i = 1; i < 20000;i++ ) { random y = new random(guid.newguid().gethashcode()); pointpairlist list1 = new pointpairlist(); for (int j = 0; j < 50; j++) { double x = j; double y1 = y.nextdouble() * 1000; list1.add(x, y1); //添加一组数据 } lineitem mycurve = mypane.addcurve("曲线"+i, list1, color.red, symboltype.none); }