線形合同ジェネレーターは優れたアルゴリズムです。しかし、より高速なアルゴリズムはありますか?
3 に答える
8 ビット CPU は通常、除算や乗算を高速に実行できないため、線形合同法ジェネレーターを使用することはお勧めできません。
リニア フィードバック シフト レジスタ (LFSR)は、シフト演算と論理演算のみを使用します。
配列を使用すると、一般化線形フィードバック シフト レジスタ (GLFSR) になります。これは、メルセンヌ ツイスターが使用する一般的な方法です。各ステップですべてのビットをシフトするのではなく、配列を循環するため、わずかな計算量で大きな状態空間 (数百から数千ビット) を持つことができます。
線形方式であるため、暗号化には適していないことに注意してください。
いいえ、汎用 CPU を介した大幅に高速なアルゴリズムはありません。@Joachim Isaksson と @Michael Burr が述べたように、品質を低下させたり、奇妙なことをしたりせずにできることはあまりありません。g: コンパイル時に乱数の膨大なリストを計算すると、実行時の生成が高速になります。
本当に高速な乱数ジェネレーターは、特殊なハードウェアを使用します。[microcontroller] にタグを付けたので、使用しているプロセッサを調べて、どのような特殊な機能が提供されるかを確認してください。
さらに: PRN の必要性にさらに情報を提供すると、大きな素数によって変更されたマイクロコントローラーの時間ベースのカウンターを使用するなど、いくつかの新しいアイデア (数値の長さ、速度: O(n) または時間、ランダム性の程度など) を引き出すのに役立つ場合があります。 .