web-dev-qa-db-ja.com

Brainfuckのランダムシードとして何を使用すればよいですか?

私が理解しているように、ほとんどの疑似ランダムアルゴリズムは、日付、時刻、MACアドレス、シリアル番号など、1つ以上の真にランダムなlongsを取得し、それらを一連の複雑なものに通すことによって機能します。計算し、結果を返します。

ただし、これはBrainf * ckでは不可能です。言語には8つの有効な構文文字しかありませんが、完全な説明については気にしません。これは ここ にあります。要点は、システム時刻や、シードと見なすことができるその他の数値にアクセスするための関数がないということです。関数に入れる良い種をどこで手に入れるか考えられません。誰か提案がありますか?

前もって感謝します。

注:より多くの言語に適用されるように、この質問を自由に編集してください。使用する正しい単語に指を置くことができません。

1
FracturedRetina

Brainf * ckプログラムで使用できる唯一の入力関数は、標準入力から読み取ることです。プログラムがユーザー入力を必要としない場合は、stdinをランダムなデバイスに接続し、そこからランダムなバイトを読み取ることができます。例えば:

bf program </dev/urandom
8
Greg Hewgill

psuedo-random 数値ジェネレーターはランダムに見えるだけです。他のプロセスと無相関にすることを目的としているため、たとえば、これを使用してランダムなテストデータを生成し、必要に応じてバグを修正してテストを再現できます。

外部データをシードすることにより、疑似乱数ジェネレーターから乱数ジェネレーターを構築できます。 Brainfuckでそれを行うには、,演算子を介して文字を読み取る必要があるようです。

0
Jerry101