2013-05-15 112 views
1

我必須在無線傳感器網絡中產生一個「唯一的隨機數」,該網絡按照Gossiping原理工作。在分佈式環境中生成均勻分佈的隨機數

的要求是:

  1. 每個節點都產生具有什麼其它節點已經產生的任何共享知識獨特的隨機數沒有 。
  2. 產生的隨機數的分佈應該是相同的 相互之間
  3. 如果生成的隨機數的範圍大約在10-16位或可能更小,那將是優選的。

的限制爲:

  1. 一個節點不知道網絡中的其他節點產生什麼號碼。
  2. C,C++中的實現。

我也有使用隨機數生成一個唯一的種子的提供。種子可以是0-2^15範圍內的任何數字。

如果沒有產生這樣的數字方式,那麼它會如果有通過我能滿足一些上述要求的任何方法是有益的。

如果你能建議我一些方法來實現這一結果,將是很有益的。

回答

0

此解決方案工作,你必須知道代網絡中的節點總數。讓這個數字是n

的基本思想是將一個給定的時間間隔內的每個參與節點上產生均勻分佈的隨機數。參與節點的間隔不能重疊。如果節點的總數並沒有改變 共享種子不使問題複雜化,並且每個節點可以靜態分配一些整數i < = n使得每個號碼發出一次。而不是在每一轉生成一個單一的隨機數,n號碼生成,節點i採取i從這個系列號碼。

然而,產生不會是統一的,除非隨機數的整體分佈...:

  • 您同步的隨機數生成。
  • 所有間隔的大小相同。

有關個別節點上的隨機數生成信息see here