欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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的定义

C#在循环中使用Random时生成的随机数相同的解决办法

 

 

C#在循环中使用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);
               
            }