C#在循環中使用Random時生成的隨機數相同的解決辦法


場景

在循環中使用

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);
               
            }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM