0

以下の機能を備えたラッキー ドロー用のソフトウェアまたはプログラム環境が必要です。

  • 完全ランダム抽選方式

  • 明確なシードとインクリメントを使用しない (予測不可能な方法)

  • 最初の選択に依存しない

  • 乱数は、時間、温度、インターネット トラフィック、大気ノイズなどの環境要因に基づいて生成できますが、単純なランダム数学関数から生成することはできません。

これについて私を助けてもらえますか?

ありがとう

4

2 に答える 2

2

計算によって乱数を生成する方法があり、George Marsaglia による Multiply with Carry Method として知られています。この方法の利点は、増分ベースでなく、パターンでシードされていないことです。むしろ、ランダムシードを持っています。

PS このアプリケーションはスレッドセーフではありません

http://en.wikipedia.org/wiki/Multiply-with-carry

コードはこの記事からのものです: http://en.wikipedia.org/wiki/Random_number_generation#Computational_methods

m_w = <choose-initializer>;    /* must not be zero */
m_z = <choose-initializer>;    /* must not be zero */

uint get_random()
{
    m_z = 36969 * (m_z & 65535) + (m_z >> 16);
    m_w = 18000 * (m_w & 65535) + (m_w >> 16);
    return (m_z << 16) + m_w;  /* 32-bit result */
}
于 2012-06-11T14:33:15.170 に答える
2

「くじ引き」とは、数字が 1 日に 1 回だけ必要な場合などを意味する場合、NASDAQ や S&P 500 などの公的にアクセス可能な株式市場指数の小数桁を含む下位桁を使用できます。次のことができます。また、これらのインデックスのいくつかを使用し、ハッシュ関数を使用して数字を組み合わせて、より大きな 1 つの数値を取得します。

于 2012-06-11T14:37:55.620 に答える