Ведутся технические работы. Это может временно повлиять на скорость работы сайта. Приносим извинения за неудобства и благодарим за ваше понимание!
Случайные числа: как обмануть игровой автомат, рулетка с роботом и кубики на Raspberry. ТехноБайки
Сегодня поговорим о числах — случайных и нет. Проведём кучу экспериментов, соберём парочку игровых автоматов и попытаюсь у них выиграть.
Если вы пытались написать свой тетрис, сделать электронную свечку или собрать светомузыку — точно использовали случайные числа. Всё просто?
Нет. Компьютер штука полезная, умная, но предельно логичная. Выполнить сложную программу — никаких проблем, а придумать случайное число компьютер не может.
В самом простом случае — функция генерации случайных чисел выдаёт элементы прошитого в память массива. Дальше они могут обрабатываться дополнительно, например суммироваться со временем, прошедшим от включения устройства, перемножаются на биты серийного номер и так далее.
Получается, программы генерируют псевдослучайные числа. Гордитесь своим превосходством над компьютером? Зря!
Скетчи экспериментов вы найдёте на нашей wiki: http://wiki.amperka.ru/%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%BE%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B0:rnd
Список эпизодов ТехноБайки:
01:15 — Почему робот выигрывает у человека в “Орёл и Решку”.
04:57 — Как взломать игровой автомат?
07:14 — Как собрать аппаратный генератор случайных чисел.
09:10 — играем в рулетку с Arduino.
12:00 — рандомизатор на Raspberry и OpenCV.
14:10 — гарантированный способ поднять деньги в казино.
Система Энштейна и как она работает.
В ролике использовались:
• Arduino Uno — https://amperka.ru/product/arduino-uno?utm_source=proj&utm_campaign=pvid-2019-11-15-casino&utm_medium=youtube
• Slot Shield — https://amperka.ru/product/arduino-troyka-slot-shield?utm_source=proj&utm_campaign=pvid-2019-11-15-casino&utm_medium=youtube
• Индикаторные светодиоды — https://amperka.ru/product/troyka-5mm-led-module?utm_source=proj&utm_campaign=pvid-2019-11-15-casino&utm_medium=youtube
• Тактовая кнопка — https://amperka.ru/product/big-tactile-button?utm_source=proj&utm_campaign=pvid-2019-11-15-casino&utm_medium=youtube
• Четырёхразрядный индикатор — https://amperka.ru/product/troyka-quad-display?utm_source=proj&utm_campaign=pvid-2019-11-15-casino&utm_medium=youtube
• Пьезопищалка — https://amperka.ru/product/troyka-buzzer?utm_source=proj&utm_campaign=pvid-2019-11-15-casino&utm_medium=youtube
• Proto Shield — https://amperka.ru/product/arduino-proto-shield-pcb?utm_source=proj&utm_campaign=pvid-2019-11-15-casino&utm_medium=youtube
• Серва постоянного вращения FS5113R — https://amperka.ru/product/servo-fs5113r?utm_source=proj&utm_campaign=pvid-2019-11-15-casino&utm_medium=youtube
• Соленоид — https://amperka.ru/product/solenoid-tau-0530t-12v?utm_source=proj&utm_campaign=pvid-2019-11-15-casino&utm_medium=youtube
• Raspberry Pi 3 — https://amperka.ru/product/raspberry-pi-3-model-b-plus?utm_source=proj&utm_campaign=pvid-2019-11-15-casino&utm_medium=youtube
• Raspberry Camera v 2.1 — https://amperka.ru/product/raspberry-pi-camera-board-v2?utm_source=proj&utm_campaign=pvid-2019-11-15-casino&utm_medium=youtube
( ! ) Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes) in /home/domains/malitikov.ru/public_html/wp-includes/class-wpdb.php on line 2322
wpdb->get_col( $query = 'SELECT wp_posts.ID\n\t\t\t\t\t FROM wp_posts \n\t\t\t\t\t WHERE 1=1 AND wp_posts.post_type = \'post\' AND ((wp_posts.post_status = \'publish\'))\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t ', $x = ??? )
.../class-wp-query.php:3300
9
0.4594
22762992
wpdb->query( $query = 'SELECT wp_posts.ID\n\t\t\t\t\t FROM wp_posts \n\t\t\t\t\t WHERE 1=1 AND wp_posts.post_type = \'post\' AND ((wp_posts.post_status = \'publish\'))\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t ' )
.../class-wpdb.php:3107
10
4.5626
757308120
mysqli_fetch_object( $result = class mysqli_result { public $current_field = 0; public $field_count = 1; public $lengths = [0 => 7]; public $num_rows = 1516847; public $type = 0 } )