我正在开发一个游戏 AI,并使用一些随机数来使决策更加随机。我在用cocos2d::random()
我对当前random()
函数的实验表明,如果我选择 10K 个样本,我会得到想要的结果。然而,在游戏中,不太可能选择这样的样本,这使得随机函数表现得不均匀。
所以,我的问题是是否有办法用更少的样本来提高随机函数的均匀性。
这是我如何使用该random()
功能进行拍摄决策的示例:
if( mShouldRedecideCanShootDecision)
{
mShouldRedecideCanShootDecision = false;
int chance = randomInt(0, 100);
// mistake is a floating point number in [0, 1] range
int upTo = std::roundf( mistake * 100.f );
mCanShoot = true;
if(chance < upTo)
{
mCanShoot = false;
}
}
randomInt()
功能基于cocos2d::random()
:
// Max is inclusive
int randomInt(int min, int max)
{
if(min > max)
{
std::swap(min, max);
}
return min + ( cocos2d::random() % (max - min + 1) );
}