2013-05-15 1 views
1

나는 험담의 원칙에 따라 작동하는 무선 센서 네트워크에서 "고유 한 난수"를 생성해야합니다.분산 된 환경에서 균일하게 분포 된 난수 생성

요구 사항은 다음과 같습니다

  1. 각 노드는 난수, 고유의 다른 노드가 생성 한 내용의 공유 된 지식이 없이 발생한다.
  2. 생성 된 난수의 분포는 서로 일 때 균일해야합니다..
  3. 생성 된 난수의 범위가 약 10-16 비트 또는 그보다 작은 것이 바람직하다.

제한 사항은 다음과 같습니다

  1. 하나의 노드는 네트워크의 다른 노드가 생성하는 어떤 번호를 아무 생각이 없습니다.
  2. C, C++로 구현.

또한 난수 생성을위한 고유 시드를 사용하는 규정이 있습니다. 시드는 0-2^15 범위의 숫자 일 수 있습니다.

이러한 숫자를 생성 할 수있는 방법이 없다면 위의 요구 사항 중 일부를 충족 할 수있는 방법이 있으면 도움이 될 것입니다.

이 결과를 얻는 방법을 제안 할 수 있다면 정말 도움이 될 것입니다.

답변

0

이 솔루션을 사용하려면 생성 네트워크의 총 노드 수를 알아야합니다. 이 번호를 n으로 지정하십시오.

기본 아이디어는 주어진 간격 내에서 각 참여 노드에 균일하게 분산 된 난수를 생성하는 것입니다. 참여 노드의 간격은 중복되어서는 안됩니다. 공유 된 시드는 노드의 총 개수가 변경되지 않고 각 노드가 정적으로 할당 될 수있는 경우 정수를 할당 할 수 있습니다. i < = n 각 숫자는 정확히 한 번 발행됩니다. 각 턴마다 단일 난수를 생성하는 대신 n 숫자가 생성되고 노드 i은이 시리즈에서 i 번째 숫자를받습니다.

그러나 않는 균일하지 않습니다 생성 된 난수의 전반적인 유통 ... :

  • 당신은 난수 생성을 동기화 할 수 있습니다.
  • 모든 간격은 동일한 크기입니다.

개별 노드의 난수 생성에 대한 내용은 see here입니다.