Ваше завдання - імпровізувати апаратний генератор випадкових чисел з будь-яким обладнанням, де ви лежите.
Виклик
Напишіть програму з такими властивостями:
- Він друкує
0
або1
(або більше нічого). - Вихід залежить від фізичного процесу, а не лише від внутрішнього стану комп'ютера.
- Немає зв'язку між результатами наступних прогонів (одна хвилина один від одного).
- Вихід не передбачуваний при будь-яких реалістичних зусиллях.
- Ймовірність того, що вихід буде
0
знаходитися в межах від 0,2 до 0,8. - Він проходить менше ніж за хвилину з досить високою ймовірністю.
Ви повинні пояснити, чому ваша програма має ці властивості, якщо це не очевидно.
Роз'яснення та обмеження
Наведене може здатися надзвичайно багато обмежень для конкурсу на популярність, але в кінцевому підсумку це все для того, щоб програма залишалася в дусі питання, дещо спрацьовувала та уникала рішень, які користуються популярністю через тотальний надмір, але є в кінцевому рахунку досить нудно.
- Час системи не вважається фізичним процесом.
- Ви можете використовувати будь-яке споживаче обладнання, яке вам подобається, від 8-дюймових дисководів з дисководним дискетом до USB-ракетної установки до навушників - якщо тільки воно не призначене для генерації випадкових чисел. Частина обладнання є споживчим рівнем, якщо вона серійно виробляється і коштує менше 1000 $ / € / £, тому ви не можете використовувати радіотелескопи, ЦЕРН, МРТ або свій домашній детектор частинок.
- Ви можете робити лише основні припущення щодо стану та вирівнювання обладнання, наприклад, увімкнення (якщо воно має вимикач живлення) та належне встановлення та функціонування. Наприклад, ви можете припустити, що привід CD-дисків, як правило, здатний читати диск і не застрявати, але ви не можете припустити, що він відкритий або закритий або містить диск. В іншому прикладі ви не можете припустити вирівнювання двох елементів обладнання, щоб дозволити спеціальну взаємодію, але ви можете припустити, що вони знаходяться в одній кімнаті.
- Ви можете залишити обладнання в будь-якому зручному вам стані, якщо тільки ви не порушите його.
- Можна і потрібно вважати, що обладнання знаходиться в природному середовищі, але нічого більше. Наприклад, ви можете припустити, що обладнання не розташоване в баку з рідким гелієм, ні в надзвичайно звуко- і світлонепроникному приміщенні, ні в просторі. Однак ви не можете припускати, що присутні будь-які джерела звуку та світла, крім тих, яких можна уникнути лише радикальними зусиллями.
- Ваша програма повинна працювати на стандартному настільному комп’ютері з неезотеричною операційною системою на ваш вибір. Ви можете використовувати будь-яке програмне забезпечення, яке не розроблено спеціально для генерації випадкових чисел.
- Ви не можете припустити доступ до Інтернету.
- Ви не можете припускати, що люди ні присутні, ні відсутні, але ви можете припустити, що ніхто навмисно не втручається у вашу програму, наприклад, вручну зупиняючи вентилятор або запускаючи програму, яка не робить нічого, окрім якнайчастіше вимикаючи мікрофон.
- Ви можете зробити лише основні припущення щодо налаштувань програмного забезпечення. Наприклад, ви можете припустити, що драйвери будуть встановлені та активовані, але ви повинні бути готові до вимкнення звуку.
- Ви можете залишити налаштування програмного забезпечення в будь-якому зручному вам стані.
Бонус
Особливо коротке рішення було нагороджено особливою нагородою. Це було скоріше за кількістю інструкцій і подібним, ніж за символами. Переможці були (прив'язані за моїми критеріями):
- Ця відповідь Франкі.
- Ця відповідь Техаса Кале.
Я міг нагородити лише одну відповідь, і відповідь Техаса Кале виграла жеребкуванням.