本文介绍了在循环中运行时,随机数发生器总是选择相同的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

与代码的问题是,当我尝试生成一个号码,如果自旋等于1它产生的范围内(1,2,3)如果要是尝试使用循环来总结里面相同的随机值的值范围gerated随机数始终是相同的,而在循环,



例如,如果我运行的循环:
spind3 = 4的值从4去, 8,12
spind3 = 5的值从5走,10,15



这意味着第一次RandomNumber产生内部循环的值,它永远不会改变直到循环完成。

 如果(toggled3.Checked)
{
如果(spind3.Value! = 1)
{
的for(int i = 1; I< = spind3.Value;我++)
{
diceCalc [1] + = RandomNumber(1,4) ;
}
}
,否则
diceCalc [1] = RandomNumber(1,4);
}


解决方案

您可能正在创建一个新的随机 RandomNumber 方法内的对象。为随机 使用系统时间作为种子。在紧密循环如果创建了多个随机对象的时候可能不会每次通话,使他们都将使用相同​​的种子进行初始化之间改变。



要修复您的代码,你应该只创建一个随机对象,然后重新使用。






从:



这篇关于在循环中运行时,随机数发生器总是选择相同的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-23 17:08