Sua tarefa é improvisar um gerador de números aleatórios de hardware com o hardware que você tem.
Desafio
Escreva um programa com as seguintes propriedades:
- Imprime um
0
ou1
(e nada mais). - A saída depende de um processo físico e não apenas do estado interno do computador.
- Não há relação entre as saídas das execuções subsequentes (com um minuto de diferença).
- A saída não é previsível com nenhum esforço realista.
- A probabilidade de a saída estar
0
entre 0,2 e 0,8. - É executado em menos de um minuto, com uma probabilidade razoavelmente alta.
Você deve explicar por que seu programa possui essas propriedades, se não for óbvio.
Esclarecimentos e Restrições
A seguir, pode parecer uma enorme quantidade de restrições para um concurso de popularidade, mas ultimamente é tudo para garantir que o programa permaneça dentro do espírito da pergunta, funcione um pouco e para evitar soluções que são populares devido a um exagero total, mas são ultimamente entediante.
- A hora do sistema não conta como um processo físico.
- Você pode usar qualquer hardware de nível de consumidor que desejar, desde unidades de disco floopy de 8 polegadas a um lançador de foguetes USB e fones de ouvido - a menos que seja destinado à geração de números aleatórios. Uma peça de hardware é do tipo consumidor, se é produzida em massa e custa menos de 1000 $ / € / £, portanto você não pode usar radiotelescópios, CERN, MRIs ou seu detector de partículas construído em casa.
- Você só pode fazer as suposições mais básicas sobre o estado e o alinhamento do hardware, como estar ligado (se houver um interruptor de energia) e estar adequadamente instalado e funcional. Por exemplo, você pode supor que uma unidade de CD seja geralmente capaz de ler um disco e não ficar congestionada, mas não pode assumir que ela esteja aberta ou fechada ou que contenha um disco. Em outro exemplo, você não pode assumir que duas peças de hardware estejam alinhadas para permitir uma interação especial, mas você pode presumir que elas estejam na mesma sala.
- Você pode deixar o hardware no estado que desejar, a menos que o quebre.
- Você pode e deve assumir que o hardware esteja em um ambiente natural, mas nada mais. Por exemplo, você pode assumir que o hardware não está posicionado em um tanque de hélio líquido, nem em uma sala extremamente à prova de som e luz, nem no espaço. No entanto, você não pode assumir que fontes de som e luz estejam presentes, exceto aquelas que são evitáveis apenas com esforços radicais.
- Seu programa deve ser executado em um computador desktop padrão com um sistema operacional não esotérico de sua escolha. Você pode empregar qualquer software que não seja projetado especificamente para geração de números aleatórios.
- Você não pode assumir acesso à Internet.
- Você não pode assumir que os humanos estejam presentes ou ausentes, mas você pode assumir que ninguém interfere intencionalmente com o seu programa, por exemplo, parando manualmente um ventilador ou executando um programa que não faz nada além de desligar o microfone o mais rápido possível.
- Você pode apenas fazer as suposições mais básicas sobre as configurações do software. Por exemplo, você pode assumir que os drivers estejam instalados e ativados, mas você deve estar preparado para que o som seja silenciado.
- Você pode deixar as configurações do software no estado que desejar.
Bônus
Uma recompensa especial foi concedida a uma solução particularmente curta. Isso foi mais pelo número de instruções e similar do que pelos caracteres. Os vencedores foram (empatados de acordo com meus critérios):
- Esta resposta por Franki.
- Esta resposta de Tejas Kale.
Eu só pude atribuir uma resposta e a resposta de Tejas Kale venceu por sorteio.