Игральные кости — это то, что есть в компьютере
Обновлено: 21.11.2024
Необходимая статистика настроек
Пожалуйста, ознакомьтесь с нашей Политикой в отношении файлов cookie или посетите нашу панель конфиденциальности для получения дополнительной информации.
Разрешить выбранное Разрешить все
Что за шум вокруг настоящей случайности?
Возможно, вы задавались вопросом, как предсказуемые машины, такие как компьютеры, могут генерировать случайность. На самом деле большинство случайных чисел, используемых в компьютерных программах, являются псевдослучайными, что означает, что они генерируются предсказуемым образом с использованием математической формулы. Это подходит для многих целей, но может не быть случайным, как вы ожидаете, если вы привыкли к броскам костей и лотерейным розыгрышам.
Игры и лотереи
Лотерея Quick Pick, пожалуй, самая популярная в Интернете с более чем 280 лотереями
Keno Quick Pick для популярной игры, в которую играют во многих странах
Coin Flipper выдаст вам орел или решку во многих валютах
Dice Roller делает именно то, что написано на банке
Playing Card Shuffler будет брать карты из нескольких перетасованных колод
Birdie Fund Generator создаст птичьи лунки для полей для гольфа
Случайные рисунки
Q3.1 в FAQ объясняет, как БЕСПЛАТНО выбрать победителя розыгрыша.
Сторонняя служба розыгрыша – лучшее решение для проведения случайных розыгрышей онлайн.
Пошаговое руководство объясняет, как провести розыгрыш рисунок с помощью стороннего сервиса рисования
Пошаговое видео показывает, как провести рисунок с помощью стороннего сервиса рисования
Калькулятор цен точно подскажет, сколько будет стоить ваш рисунок
Часто задаваемые вопросы по рисованию отвечает на общие вопросы о розыгрышах
Public Records показывает все завершенные розыгрыши за последние пять лет
Результат розыгрыша можно использовать для публикации ваших победителей на вашей веб-странице
Многораундовая служба раздачи проверенных видео подарки
Числа
Генератор целых чисел создает случайные числа с заданными интервалами
Генератор последовательностей рандомизирует последовательность целых чисел по вашему выбору
Генератор наборов целых чисел создает наборы неповторяющихся целых чисел
Генератор Гаусса создает случайные числа, нормальное распределение
Генератор десятичных дробей создает числа в диапазоне [0,1] с настраиваемыми десятичными знаками
Необработанные случайные байты полезны для многих криптографических целей
Списки, строки и карты, о боже!
List Randomizer рандомизирует список всего, что у вас есть (имена, номера телефонов и т. д.).
Генератор строк создает случайные буквенно-цифровые строки.
Генератор паролей создает безопасные пароли для вашего Wi-Fi или дополнительной почты Gmail.
Генератор времени выберет случайное время суток
Генератор даты календаря выберет случайные дни почти из трех с половиной тысячелетий
Географ географических координат выберет случайное место на поверхности нашей планеты < br />Растровые изображения в черно-белом режиме
Генератор шестнадцатеричного цветового кода подберет цветовые коды, например, для использования в качестве веб-цветов
Предварительно созданные файлы содержат большое количество загружаемых случайных битов
Чистый белый аудиошум для композицию или просто проверить свое звуковое оборудование
Джазовые гаммы для практики импровизации для студентов, изучающих джазовую гитару
Короткая проза Сэмюэля Беккета, сгенерированная случайным образом
Рандомизатор последовательностей белков ДНК (в Bio-Web)
Веб-инструменты и виджеты для ваших страниц
Узнайте о случайности
Статистика
Статистика в реальном времени показывает, как работает генератор прямо сейчас.
Статистический анализ объясняет, как вы проверяете случайные числа на случайность.
Bit Tally показывает, сколько случайных чисел было сгенерировано с 1998 года (подсказка: много!)
Ваша квота показывает, сколько случайных битов у вас осталось на сегодня
Контакты и помощь
Часто задаваемые вопросы содержат ответы на часто задаваемые вопросы.
Информационный бюллетень появляется через случайные промежутки времени, но подпишитесь
Контактные данные на случай, если вы захотите связаться с нами
Раздел 404 Закона Сарбейнса-Оксли (SOX) требует, чтобы все публичные компании установили внутренний контроль и процедуры.
Закон о защите конфиденциальности детей в Интернете от 1998 года (COPPA) – это федеральный закон, который налагает особые требования на операторов доменов .
План North American Electric Reliability Corporation по защите критически важной инфраструктуры (NERC CIP) представляет собой набор стандартов.
Стандарт безопасности данных платежных приложений (PA-DSS) – это набор требований, призванных помочь поставщикам программного обеспечения в разработке безопасных .
Взаимная аутентификация, также называемая двусторонней аутентификацией, представляет собой процесс или технологию, в которой оба объекта обмениваются данными .
Экранированная подсеть или брандмауэр с тройным подключением относится к сетевой архитектуре, в которой один брандмауэр используется с тремя сетями .
Медицинская транскрипция (МТ) – это ручная обработка голосовых сообщений, продиктованных врачами и другими медицинскими работниками.
Электронное отделение интенсивной терапии (eICU) — это форма или модель телемедицины, в которой используются самые современные технологии.
Защищенная медицинская информация (PHI), также называемая личной медицинской информацией, представляет собой демографическую информацию, медицинскую .
Снижение рисков – это стратегия подготовки к угрозам, с которыми сталкивается бизнес, и уменьшения их последствий.
Отказоустойчивая технология — это способность компьютерной системы, электронной системы или сети обеспечивать бесперебойное обслуживание.
Синхронная репликация — это процесс копирования данных по сети хранения, локальной или глобальной сети, поэтому .
Коэффициент усиления записи (WAF) – это числовое значение, представляющее объем данных, передаваемых контроллером твердотельного накопителя (SSD) .
API облачного хранилища — это интерфейс прикладного программирования, который соединяет локальное приложение с облачным хранилищем.
Интерфейс управления облачными данными (CDMI) – это международный стандарт, определяющий функциональный интерфейс, используемый приложениями.
- развить навыки применения вычислительного мышления к проблеме
- оценить свои знания и навыки в различных практиках программирования
Содержание
Что пытается решить этот набор задач [ изменить ]
В этом примере мы изучаем списки, условия и обработку пользовательского ввода.
Проблема [ изменить ]
Общая механика в компьютерных играх — имитация броска костей. Пожалуйста, напишите функцию, которая бросает кости и возвращает результат.
Как вас будут оценивать [ изменить ]
Ваше решение будет оцениваться по следующей оси:
- В какой степени ваш код реализует функции, требуемые нашей спецификацией?
- Насколько очевидны усилия?
Правильность
- В какой степени ваш код соответствует спецификациям?
- В какой степени ваш код соответствует модульным тестам?
- Насколько ваш код свободен от ошибок?
- Насколько хорошо написан ваш код (то есть ясно, эффективно, элегантно и/или логично)?
- В какой степени ваш код исключает повторения?
- Насколько правильно ваш код использует функции?
- Насколько читабелен ваш код?
- Насколько прокомментирован ваш код?
- Насколько хорошо названы ваши переменные?
- Насколько вы придерживаетесь руководства по стилю?
Ссылки [ изменить ]
Возможное решение [ изменить ]
Нажмите на ссылку "Развернуть", чтобы увидеть одно из возможных решений, но НЕ до того, как вы попробуете и потерпите неудачу!
Учитывайте достоинства аргумента или концепции. Мнения и выводы должны быть представлены четко и подкреплены соответствующими доказательствами и вескими аргументами.
Создать план, симуляцию или модель.
Единица абстрактной математической системы, подчиняющаяся законам арифметики.
Моделирование броска загруженных игральных костей долгое время было проблемой для компьютеров.
Стивен Орнс
Вот обманчиво простое упражнение: придумайте случайный номер телефона. Семь цифр в последовательности, выбранной таким образом, чтобы каждая цифра была равновероятной и чтобы ваш выбор одной цифры не влиял на следующую. Скорее всего, вы не можете. (Но не верьте мне на слово: исследования 1950-х годов показывают, насколько мы математически неслучайны, даже если мы этого не осознаем.)
Не принимайте это близко к сердцу. Компьютеры также плохо генерируют случайность. Они не должны: компьютерное программное и аппаратное обеспечение работает на булевой логике, а не на вероятности. "Культура вычислений основана на детерминизме, – сказал Викаш Мансингка, руководитель проекта вероятностных вычислений в Массачусетском технологическом институте, – и это проявляется практически на всех уровнях".
Но специалистам по информатике нужны программы, которые могут обрабатывать случайные числа, потому что иногда это требуется для решения проблемы. За прошедшие годы некоторые из них разработали новые изящные алгоритмы, которые, хотя сами по себе и не генерируют случайные числа, предлагают умные и эффективные способы использования случайности и управления ею.Одна из последних инициатив принадлежит группе Мансингки из Массачусетского технологического института, которая представит алгоритм Fast Loaded Dice Roller, или FLDR, на Международной онлайн-конференции по искусственному интеллекту и статистике в августе этого года.
Проще говоря, FLDR использует случайную последовательность для идеальной имитации прокатки загруженной матрицы. (Или взвешенная монета, или сфальсифицированная колода карт.) «Он показывает, как превратить совершенно случайное подбрасывание монеты в предвзятое подбрасывание монеты», — сказал математик Питер Бирхорст из Университета Нового Орлеана. Бирхорст не участвовал в исследовании, но описывает предпосылку успеха FLDR как «убедительную».
FLDR не даст вам преимущества в игре "Монополия" или повысит ваши шансы за крэпс-столами в Лас-Вегасе. Но его создатели говорят, что он предлагает способ интегрировать случайные числа в программное и аппаратное обеспечение, которые построены так, чтобы быть детерминированными. Включение такой неопределенности поможет машинам делать человеческие прогнозы и лучше моделировать явления, зависящие от вероятности, такие как климат или финансовые рынки.
Случайность — более сложная концепция, чем кажется. В последовательностях случайных чисел, где нет различимой закономерности, каждая цифра имеет одинаковую вероятность появления. Например, число пи само по себе не является случайным числом, но считается, что цифры числа пи случайны таким образом (математики называют это «нормальным»): каждое целое число от 0 до 9 встречается примерно одинаковое количество раз. р>
Несмотря на то, что вы можете найти "генератор случайных чисел" в Google, чистой случайности вы не получите. Современные процессоры, поисковые системы и генераторы паролей используют «псевдослучайные» подходы, которые достаточно близки для большинства целей. Они генерируются по сложным формулам, но теоретически, если бы вы знали формулу, вы могли бы предсказать последовательность.
Ученые пытались внедрить настоящую случайность в машины не менее 80 лет. (До этого случайные числа брались из старых запасных частей, таких как брошенные игральные кости, пронумерованные шары, вытащенные из хорошо перемешанного мешка, или другие механические упражнения. В 1927 году статистик провел выборку данных переписи, чтобы составить таблицу из 40 000 случайных цифр.)
Первыми источниками случайных чисел были физические машины. Первая машина, генерирующая случайные числа, была детищем британских статистиков Мориса Джорджа Кендалла и Бернарда Бабингтона Смита, описавших ее в 1938 году. Машину помещали в темную комнату, где она крутила диск, разделенный на 10 равных клинообразных частей. помечены цифрами от 0 до 9. Когда кто-то нажимал на клавишу через неравномерные промежутки времени, короткая неоновая вспышка или искра освещали диск так, что казалось, что он замерзает, и видна только одна цифра. Более поздняя машина, названная Эрни, вместо этого использовала сигнальный шум в неоновых лампах; начиная с 1957 года он выбирал выигрышные номера в британской лотерее.
В последнее время для получения действительно случайных последовательностей, говорит Бирхорст, специалистам по информатике приходится обращаться к природным явлениям, таким как космическое фоновое излучение или непредсказуемое поведение квантовых систем. «В природе есть случайные процессы, которые можно использовать, и которые действительно непредсказуемы», — сказал он. «Электрон, который уклоняется влево или вправо, даже не знает заранее, что он собирается делать».
Но случайность не может завести вас так далеко. К концу 1940-х физики начали генерировать случайные числа, соответствующие заданному распределению вероятностей. Такие инструменты — теоретическая версия прокатки заряженного кубика — можно было бы более точно использовать для моделирования реальных ситуаций, таких как транспортный поток или химические реакции. В 1976 году пионеры-компьютерщики Дональд Кнут и Эндрю Яо представили алгоритм, который мог использовать строку случайных чисел для создания случайных выборок из любого массива взвешенных результатов. "Это был самый быстрый алгоритм, который можно было когда-либо разработать", – сказал Ферас Саад, аспирант лаборатории Мансингки, руководивший новой работой над FLDR.
К сожалению, Саад говорит, что алгоритм использует компромисс, хорошо известный специалистам по информатике: многие приложения, которые работают быстро, используют много памяти, а приложения, которые используют мало памяти, могут работать долго. Алгоритм Кнута и Яо относится к первой категории, что делает его элегантным, но слишком требовательным к памяти для любого практического использования.
Но прошлой весной Саад нашел умный обходной путь. Он понял, что когда веса на игральной кости складываются в степень 2, алгоритм работает эффективно как по времени, так и по памяти. Итак, для шестигранного игрального кубика представьте, что шансы выпадения чисел от 1 до 6 соответственно взвешиваются как 1, 2, 3, 4, 5 и 1. Это означает, что вероятность выпадения 1, например, равна 1/16, а вероятность выпадения 2 равна 2/16. Поскольку веса складываются в степень 2 — 16 равно 2 4 — алгоритм для этой системы эффективен с точки зрения времени и памяти.
Но представьте, что веса равны 1, 2, 3, 2, 4, 2, что в сумме дает 14. Поскольку 14 не является степенью числа 2, алгоритм Кнута-Яо требует значительно больше памяти.Саад понял, что может добавить дополнительный вес, чтобы их сумма всегда давала степень 2. В этом случае он просто добавил бы еще одно гипотетическое лицо — одно с весом 2 — так, что веса в сумме составили бы 16. Если бы алгоритм выбирал одно исходных граней, значение было записано. Если он выбирал дополнительное лицо, значение отбрасывалось, и алгоритм запускался снова.
Это ключ к эффективности FLDR, который делает его мощным инструментом для моделирования: объем дополнительной памяти, необходимой для дополнительных бросков, минимален по сравнению с большим объемом памяти, который обычно требуется в оригинале.
FLDR делает алгоритм Кнута-Яо эффективным и предлагает способы улучшения широкого спектра приложений. Моделирование изменения климата, предсказание урожайности, моделирование поведения частиц, модели финансового рынка и даже обнаружение подземных взрывов ядерного оружия зависят от случайных чисел во взвешенных распределениях вероятностей. Случайные числа также составляют основу криптографических схем, защищающих данные, отправляемые через Интернет.
Мансинка говорит, что FLDR также может помочь исследователям найти способы интегрировать вероятность в компьютерные процессоры — это основное направление работы его лаборатории в Массачусетском технологическом институте. Алгоритм может помочь в разработке программных библиотек и новых аппаратных архитектур, которые могут генерировать случайные числа и использовать их эффективным образом. Это был бы резкий отход от детерминированных логических машин, к которым мы привыкли.
"Возможно, у нас есть все шансы интегрировать случайность в строительные блоки программного и аппаратного обеспечения", – сказал он.
Читайте также: