あなたの仕事は、周りにあるハードウェアでハードウェア乱数ジェネレーターを即興することです。
チャレンジ
次のプロパティを持つプログラムを作成します。
0
または1
(他には何も)を出力しません。- 出力は、コンピューターの内部状態だけでなく、物理プロセスに依存します。
- 後続の実行の出力間に関係はありません(1分間隔)。
- 出力は現実的な努力では予測できません。
- 出力される確率は
0
0.2〜0.8です。 - かなり高い確率で1分以内に実行されます。
明らかでない場合は、プログラムにこれらのプロパティがある理由を説明する必要があります。
明確化と制限
以下は、人気コンテストの非常に多くの制限のように思えるかもしれませんが、最終的には、プログラムが質問の精神の範囲内にとどまることを保証し、ある程度機能し、完全に過剰であるために人気があるソリューションを回避することがすべてですむしろ退屈。
- システム時間は物理プロセスとしてカウントされません。
- 8インチfloopy-diskドライブからUSBロケットランチャー、ヘッドフォンまで、消費者グレードのハードウェアを使用できます(乱数生成を目的としない場合)。ハードウェアは大量生産され、価格が1000ドル未満の場合、消費者グレードであるため、電波望遠鏡、CERN、MRI、または自作の粒子検出器は使用できません。
- 電源を入れる(電源スイッチがある場合)、適切にインストールして機能するなど、ハードウェアの状態とアライメントに関して最も基本的な仮定のみを行うことができます。たとえば、CDドライブは一般にディスクを読み取ることができ、詰まることはないと想定できますが、CDドライブが開いている、閉じている、またはディスクが入っているとは想定できません。別の例では、特別な相互作用を可能にするために2つのハードウェアを揃えることはできませんが、同じ部屋にあると想定できます。
- ハードウェアは、破損しない限り、どのような状態のままでもかまいません。
- ハードウェアが自然環境にあることを前提とする必要がありますが、それ以上ではありません。たとえば、ハードウェアが液体ヘリウムのタンク内、非常に防音および耐光性の部屋内、または空間内に配置されていないと仮定できます。ただし、根本的な努力によってのみ回避できるものを除き、サウンドおよび光源が存在すると想定することはできません。
- プログラムは、選択した非難解なオペレーティングシステムを備えた標準的なデスクトップコンピューターで実行する必要があります。乱数生成用に特別に設計されていないソフトウェアを使用できます。
- インターネットアクセスを想定することはできません。
- 人間が存在することも存在しないことも想定できませんが、例えば、ファンを手動で停止したり、マイクをできるだけ頻繁にオフにする以外のプログラムを実行するなどして、プログラムに意図的に干渉する人はいないと想定できます。
- ソフトウェア設定に関して最も基本的な仮定のみを行うことができます。たとえば、ドライバーをインストールしてアクティブ化することを想定できますが、サウンドをミュートするための準備が必要です。
- ソフトウェア設定は任意の状態のままにしておくことができます。
ボーナス
特に短い解決策に対して特別な賞金が授与されました。これは、指示の数によるものであり、文字によるものではありませんでした。勝者は(私の基準に従って結ばれました):
私は1つの答えしか与えられず、Tejas Kaleの答えはたくさん勝ちました。