此代码如何生成随机数?

时间:2015-11-02 09:26:15

标签: data-structures treap

我现在正在学习 treap ,我来到了一个实现,其中这个家伙使用一些奇怪的方式来生成优先级的随机数。我无法得到它。是否有人介意向我解释如何它有效吗?

     struct xor_128
     {
         ull x,y,z,w;
         xor_128(): x(1234567892851659llu), y(3631515817918578190llu),z(711737163082llu), w(916951651388197517llu) {}
         ull next()
       {
          ull t=x^(x<<11);// ull is unsigned long long he used
          x=y;
          y=z;
          z=w;
          return w=w^(w>>19)^t^(t>>8);
       }
    };

0 个答案:

没有答案