繁体   English   中英

在分布式环境中生成均匀分布的随机数

[英]Generating uniformly distributed random numbers in distributed environment

我必须在按照闲聊原理工作的无线传感器网络中生成一个“唯一随机数”。

要求是:

  1. 每个节点必须生成一个唯一的随机数而无需任何其他节点已共享的知识。
  2. 生成的随机数分布应该彼此相对均匀
  3. 如果所生成的随机数的范围在10-16位左右或更小则将是优选的。

限制是:

  1. 一个节点不知道网络中其他节点正在生成多少个。
  2. 用C,C ++实现。

我还提供了使用唯一种子进行随机数生成的规定。 种子可以是0-2 ^ 15范围内的任何数字。

如果没有办法生成这样的数字,那么如果有任何一种方法可以满足上述一些要求,那将是有帮助的。

如果您可以建议我一些实现此结果的方法,那将非常有帮助。

为了使该解决方案有效,您必须知道世代网络中的节点总数。 将此数字设为n

基本思想是在给定间隔内在每个参与节点上生成均匀分布的随机数。 参与节点的n间隔不得重叠。 如果节点总数不变,并且每个节点可以静态分配一些整数i <= n ,使得每个节点仅发出一次,则共享种子不会使问题变得复杂。 不是在每个回合上生成一个随机数,而是生成n个数,并且节点i从该序列中获取第i个数。

但是,除非...,否则生成的随机数的总体分布将不一致。

  • 您同步随机数生成。
  • 所有间隔都具有相同的大小。

有关在各个节点上生成随机数的信息, 请参见此处

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM