我正在使用梅森捻线机的this实施我正在编写的钻石方形地形发生器。使用单独的实现而不是内置的rand()的意义在于我希望每次都使用相同的种子生成相同的地图。菱形方块需要在每个像素上添加随机误差,因此我需要从单个种子生成许多很多随机数。 Mersenne twister对此有好处,但据我所知,这个实现只产生一个随机数。我用mt_init()替换了整数参数中的rand()。但是,我不能再对代码进行进一步的改进,所以我必须转向你问:我应该采取什么步骤让mt_random(n)返回Mersenne twister系列中的第n个随机数呢?
答案 0 :(得分:3)
如果您需要更多随机数,请随时拨打mt_random
。
答案 1 :(得分:1)
我会重新考虑使用rand
和srand
。如果你想要一个单独的随机函数,其状态不受rand
的正常调用的影响,你可以使用这样的东西。
unsigned int my_seed = 42;
int my_rand()
{
srand(my_seed);
return my_seed = rand();
}