乱数吧 关注:284贴子:5,425
  • 2回复贴,共1

有人知道gen5乱数的原理么

只看楼主收藏回复

目前网上流传的 0xFFFFFFF*0x41C64E6D+6073的算法出自smogon的一篇gen4乱数原理。实际上10年出了黑白后这篇文章中整个的PID生成和seed生成已经完全对不上号了...而且更有趣的是,bwseedlist和RNGreporter在同一个seed下给出的PID几乎完全对不上号。两边给出的PID 在0xFFFFFFFF加粗的部分完全相同,但是在第一位,却会出现RNG-list=7,在第四位出现RNG-list=1的情况。
其次,由PID计算出个体的情况不会出现了。所谓的PID前16位对应特防特攻速度,后16位对应防御攻击hp,在RNG和list给出的PID下都不成立。这一算法也是未明的。


IP属地:日本1楼2014-01-02 14:07回复
    诶擦我的加粗呢


    IP属地:日本2楼2014-01-02 14:09
    回复
      再提供一些从bwseedlist里推出来的参数好了。
      gen5的seed是16位16进制数,0xFFFFFFFFFFFFFFFF*0x5D588B656C078965 +0x269EC3得到一个32位16进制数,mod0x10000000000000000得到后16位作为新的seed=0xFFFFFFFAAAAAAAA
      新seed的前8位0xFFFFFFFF的部分是所谓的生乱数,生乱数的第四位和第一位变动后会得到PID。第四位与第一位的变动算法不明。可能出现的情况是1位-7,和4位±1


      IP属地:日本3楼2014-01-02 14:33
      回复