我有大量的并行进程和一个大整数,并且想要随机划分整数在过程中只有沟通。
一种很好的方法是生成伪随机排列表示为一个小函数,因此只需要交换随机密钥/种子。有没有好的方法来做到这一点?
我有大量的并行进程和一个大整数,并且想要随机划分整数在过程中只有沟通。
一种很好的方法是生成伪随机排列表示为一个小函数,因此只需要交换随机密钥/种子。有没有好的方法来做到这一点?
挑选略大于, 生成一个块密码操作于位块,并构造一个排列通过沿着循环行走直到我们回到所需的范围内。具体来说,给定我们设置
如果,并且块密码很好,步行需要预计时间。注意必然是有限的,因为最终我们将绕回循环并找到.
有关更多详细信息,请参阅
这是一个使用截断 TEA 块密码的示例实现,如 (2) 中所述:
https://github.com/otherlab/core/blob/f09fbd19dbaa7b9033eb0888594273a6a3d592a5/random/permute.cpp