本文介绍了在循环中运行时,随机数发生器总是选择相同的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
与代码的问题是,当我尝试生成一个号码,如果自旋等于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
方法内的对象。为随机
使用系统时间作为种子。在紧密循环如果创建了多个随机
对象的时候可能不会每次通话,使他们都将使用相同的种子进行初始化之间改变。
要修复您的代码,你应该只创建一个随机
对象,然后重新使用。
从:
这篇关于在循环中运行时,随机数发生器总是选择相同的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!