c# – 随机遇到不是随机的
你好我有一些问题生成随机数与C#
现在我有这个功能. public Color getRandomColor() { Color1 = new Random().Next(new Random().Next(0,100),new Random().Next(200,255)); Color2 = new Random().Next(new Random().Next(0,255)); Color3 = new Random().Next(new Random().Next(0,255)); Color color = Color.FromArgb(Color1,Color2,Color3); Console.WriteLine("R: " + Color1 + " G: " + Color2 + " B: " + Color3 + " = " + color.Name); return color; } 现在你可能会注意到有一些新的Random()存在,这是因为我想要清除它可能是同一个实例错误的概率. 我现在运行这个功能8次,几次. R: 65 G: 65 B: 65 = ff414141 R: 242 G: 242 B: 242 = fff2f2f2 R: 205 G: 205 B: 205 = ffcdcdcd R: 40 G: 40 B: 40 = ff282828 R: 249 G: 249 B: 249 = fff9f9f9 R: 249 G: 249 B: 249 = fff9f9f9 R: 94 G: 94 B: 94 = ff5e5e5e R: 186 G: 186 B: 186 = ffbababa R: 142 G: 142 B: 142 = ff8e8e8e R: 190 G: 190 B: 190 = ffbebebe R: 19 G: 19 B: 19 = ff131313 R: 119 G: 119 B: 119 = ff777777 R: 119 G: 119 B: 119 = ff777777 R: 75 G: 75 B: 75 = ff4b4b4b R: 169 G: 169 B: 169 = ffa9a9a9 R: 127 G: 127 B: 127 = ff7f7f7f R: 73 G: 73 B: 73 = ff494949 R: 27 G: 27 B: 27 = ff1b1b1b R: 125 G: 125 B: 125 = ff7d7d7d R: 212 G: 212 B: 212 = ffd4d4d4 R: 174 G: 174 B: 174 = ffaeaeae R: 0 G: 0 B: 0 = ff000000 R: 0 G: 0 B: 0 = ff000000 R: 220 G: 220 B: 220 = ffdcdcdc 你可以看到这不是再次随机,但为什么会发生这种情况呢?我该怎么对付呢? 解决方法
您正在为您需要的每个单一值创建一个新的随机.
尝试创建一个唯一的Random对象并多次调用.Next()函数. public Color getRandomColor() { Random rand = new Random(); Color1 = rand.Next(rand.Next(0,rand.Next(200,255)); Color2 = rand.Next(rand.Next(0,255)); Color3 = rand.Next(rand.Next(0,Color3); Console.WriteLine("R: " + Color1 + " G: " + Color2 + " B: " + Color3 + " = " + color.Name); return color; } 取自MSDN documentation on Random object:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |