需要帮助转换C Mersenne twister实现对我有用



我正在为我正在编写的菱形正方形地形生成器使用Mersenne龙卷风的这个实现。使用单独的实现而不是内置的rand()的要点是,我希望每次都使用相同的种子生成相同的映射。菱形方块需要在每个像素上添加一个随机误差,所以我需要从一个种子中生成很多随机数。Mersenne twister会很好,但据我所知,这个实现只生成一个随机数。我已经用一个整数参数替换了mt_init()中的rand()。然而,我无法对代码做进一步的说明,所以我必须向您提问:我应该采取什么步骤才能使mt_random(n)返回它发出的Mersenne twister系列中的第n个随机数?

如果您需要更多的随机数,请随时调用mt_random

我会重新考虑使用randsrand。如果您想要一个单独的随机函数,它的状态不受对rand的正常调用的影响,那么可以使用这样的函数。

unsigned int my_seed = 42;
int my_rand()
{
    srand(my_seed);
    return my_seed = rand();
}

最新更新