【问题标题】:Reset Mersenne Twister重置梅森捻线机
【发布时间】:2011-08-16 10:13:51
【问题描述】:

我认为这个问题的答案很简单,但目前它似乎完全是在暗示我。

我正在使用 Mersenne Twister(在此处实现 http://www.bedaux.net/mtrand/)来生成随机数。

我需要它能够在同一个程序中连续两次生成相同的“随机”数字序列。我正在使用相同的 void seed(const unsigned long*, int size);具有相同的值集的函数,希望这将重置生成器并允许我再次生成相同的值。 具体来说:

unsigned long init[4] = {0x123, 0x234, 0x345, 0x456}, length = 4;
irand.seed(init, length);

只是为了得到这个测试和工作。

我想知道以前是否有人遇到过这个问题。

或者知道我做错了什么。

【问题讨论】:

    标签: random reset seed mersenne-twister


    【解决方案1】:
    unsigned long init[4] = {0x123, 0x234, 0x345, 0x456};
    int length = 4; 
    MTRand_int32 irand(init, length);
    
    irand.seed(init, length); // this resets
    

    我已经通过修改 mtrand 测试程序以在 5 次输出后重置并且结果清晰。

    【讨论】:

    • 嗨,奇怪的是种子没有重置它的问题。我以为会,但事实并非如此。
    猜你喜欢
    • 1970-01-01
    • 2011-03-10
    • 2013-07-12
    • 2013-04-11
    • 2014-10-28
    • 2013-12-02
    • 2015-10-15
    • 2020-02-03
    • 1970-01-01
    相关资源
    最近更新 更多