Ваша задача - импровизировать аппаратный генератор случайных чисел с тем оборудованием, которое у вас есть.
Вызов
Напишите программу со следующими свойствами:
- Он печатает либо
0
или1
(и ничего больше). - Вывод зависит от физического процесса, а не только от внутреннего состояния компьютера.
- Нет никакой связи между выходами последующих прогонов (с интервалом в одну минуту).
- Результат не предсказуем при любых реалистичных усилиях.
- Вероятность выхода
0
составляет от 0,2 до 0,8. - Это выполняется менее чем за минуту с достаточно высокой вероятностью.
Вы должны объяснить, почему ваша программа имеет эти свойства, если это не очевидно.
Разъяснения и ограничения
Нижеследующее может показаться ужасным ограничением для конкурса популярности, но, в конечном счете, это все для того, чтобы программа оставалась в духе вопроса, в какой-то мере работала, и чтобы избежать решений, которые популярны из-за полного перебора, но в конечном итоге достаточно скучный.
- Системное время не считается физическим процессом.
- Вы можете использовать любое аппаратное обеспечение потребительского уровня, которое вам нравится, от 8-дюймовых дисков с флоппи-дисководами до ракетной пусковой установки USB и наушников - если только оно не предназначено для генерации случайных чисел. Аппаратное обеспечение является потребительским, если оно производится серийно и стоит менее 1000 долл. США / £ / £, поэтому вы не можете использовать радиотелескопы, ЦЕРН, МРТ или детектор частиц вашего дома.
- Вы можете сделать только самые базовые предположения о состоянии и выравнивании оборудования, такие как включение (если оно имеет выключатель питания) и правильная установка и функционирование. Например, вы можете предположить, что дисковод для компакт-дисков, как правило, способен читать диск и не быть застрявшим, но вы не можете считать его открытым или закрытым или содержать диск. В другом примере вы не можете предположить, что два компонента оборудования выровнены для обеспечения особого взаимодействия, но вы можете предположить, что они находятся в одной комнате.
- Вы можете оставить оборудование в любом понравившемся вам состоянии, если только вы не сломаете его.
- Вы можете и должны предполагать, что оборудование находится в естественной среде, но не более того. Например, вы можете предположить, что аппаратное обеспечение не находится в резервуаре с жидким гелием, ни в чрезвычайно звуко- и светонепроницаемой комнате, ни в космосе. Однако вы не можете предполагать наличие каких-либо источников звука и света, кроме тех, которых можно избежать только радикальными усилиями.
- Ваша программа должна работать на стандартном настольном компьютере с неэзотерической операционной системой по вашему выбору. Вы можете использовать любое программное обеспечение, специально не предназначенное для генерации случайных чисел.
- Вы не можете получить доступ к Интернету.
- Вы не можете ни предполагать, что люди присутствуют, либо отсутствовать, но вы можете предположить, что никто не намеренно вмешивается в вашу программу, например, вручную останавливая вентилятор или запуская программу, которая ничего не делает, кроме как выключает микрофон как можно чаще.
- Вы можете сделать только самые основные предположения о настройках программного обеспечения. Например, вы можете предполагать, что драйверы установлены и активированы, но вы должны быть готовы к отключению звука.
- Вы можете оставить настройки программного обеспечения в любом понравившемся вам состоянии.
бонус
Специальное вознаграждение было присуждено за особенно короткое решение. Это было скорее по количеству инструкций и похожих, чем по символам. Победители были (связаны по моим критериям):
- Это ответ Франки.
- Этот ответ от Tejas Kale.
Я мог присудить только один ответ, и ответ Теджаса Кале выиграл жребий.