均匀随机,少量样本

时间:2017-12-19 09:31:17

标签: random statistics cocos2d-x uniform-distribution

我正在开发游戏AI并使用一些random来使决策更具随机性。我正在使用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) );
}

0 个答案:

没有答案