Il tuo compito è improvvisare un generatore di numeri casuali hardware con qualsiasi hardware tu abbia in giro.
Sfida
Scrivi un programma con le seguenti proprietà:
- Stampa o
0
o1
(e nient'altro). - L'output dipende da un processo fisico e non solo dallo stato interno del computer.
- Non esiste alcuna relazione tra le uscite delle corse successive (a un minuto di distanza).
- L'output non è prevedibile con alcuno sforzo realistico.
- La probabilità che l'output sia
0
compreso tra 0,2 e 0,8. - Funziona in meno di un minuto con una probabilità ragionevolmente alta.
Devi spiegare perché il tuo programma ha queste proprietà, se non è ovvio.
Chiarimenti e restrizioni
Quanto segue può sembrare un sacco di restrizioni per un concorso di popolarità, ma alla fine è tutto per garantire che il programma rimanga nello spirito della domanda, funzioni in qualche modo ed evitare soluzioni che sono popolari a causa dell'eccessivo totale ma sono in definitiva piuttosto noioso.
- Il tempo di sistema non conta come processo fisico.
- Puoi usare qualsiasi hardware di livello consumer che ti piaccia dalle unità floppy-disk da 8 pollici a un lanciarazzi USB alle cuffie, a meno che non sia destinato alla generazione di numeri casuali. Un componente hardware è di qualità consumer, se prodotto in serie e costa meno di 1000 $ / € / £, quindi non è possibile utilizzare radiotelescopi, CERN, MRI o il rilevatore di particelle di casa.
- È possibile fare solo le ipotesi di base sullo stato e sull'allineamento dell'hardware, ad esempio l'accensione (se dispone di un interruttore di alimentazione) e l'installazione e il funzionamento adeguati. Ad esempio, si può presumere che un'unità CD sia generalmente in grado di leggere un disco e di non essere inceppata, ma non si può presumere che sia aperta o chiusa o che contenga un disco. In un altro esempio non puoi presumere che due componenti hardware siano allineati per consentire un'interazione speciale, ma puoi supporre che siano nella stessa stanza.
- È possibile lasciare l'hardware in qualsiasi stato, a meno che non lo si rompa.
- Puoi e devi presumere che l'hardware si trovi in un ambiente naturale, ma niente di più. Ad esempio, si può presumere che l'hardware non sia posizionato in un serbatoio di elio liquido né in una stanza estremamente insonorizzata e leggera né nello spazio. Tuttavia, non puoi presumere che siano presenti suoni e fonti di luce tranne quelli evitabili solo con sforzi radicali.
- Il programma deve essere eseguito su un computer desktop standard con un sistema operativo non esoterico di tua scelta. È possibile utilizzare qualsiasi software non specificamente progettato per la generazione di numeri casuali.
- Non puoi assumere l'accesso a Internet.
- Non puoi presumere che gli umani siano presenti o assenti, ma puoi presumere che nessuno interferisca intenzionalmente con il tuo programma, ad esempio fermando manualmente un ventilatore o eseguendo un programma che non fa altro che spegnere il microfono il più spesso possibile.
- È possibile fare solo le ipotesi di base sulle impostazioni del software. Ad esempio, si può presumere che i driver siano installati e attivati, ma è necessario essere pronti per l'audio da silenziare.
- È possibile lasciare le impostazioni del software in qualsiasi stato desiderato.
indennità
Un premio speciale è stato assegnato a una soluzione particolarmente breve. Questo era piuttosto per numero di istruzioni e simile che per caratteri. I vincitori erano (legati secondo i miei criteri):
- Questa risposta di Franki.
- Questa risposta di Tejas Kale.
Ho potuto assegnare solo una risposta e la risposta di Tejas Kale ha vinto a sorte.