Как заблаговременно создать общедоступное, доказуемо случайное начальное число? (Поддающееся проверке случайное число)

Представьте, что вы проводите дебаты с участниками н и хотите разделить их пополам совершенно случайным образом.

Это можно сделать, создав список участников, случайным образом перетасовав этот список, а затем заставив первых участников н/2 участвовать в дебатах в команде.

Однако, если бы это обсуждение было особенно важным, мы хотели бы убедиться, что созданные нами команды являются случайными доказуемо таким образом, чтобы они были видны всем. Мы хотим показать, что созданные нами команды не являются прямым результатом каких-либо человеческих решений. Будет ли способ сделать это?

Я считаю, что эта проблема сводится к проблеме создания начального числа для генератора случайных чисел, основанного на состоянии мира в определенное время, но я не уверен. Это проблема, с которой инженеры-программисты уже сталкивались раньше, и есть ли для этого API?

Пожалуйста, предоставьте короткий, но полный пример, демонстрирующий проблему?

t0mm13b 28.05.2019 01:43

Я думал, что примера с дебатами будет достаточно. Можете пояснить, что тут непонятного? Эта идея может иметь множество применений в программной инженерии, и мне она нужна для одного из моих проектов, поэтому я публикую ее здесь.

jvn91173 28.05.2019 01:54

Что вы пробовали? Что вы исследовали? Какие языки? Источники? Это скорее очень широкий вопрос, который трудно сузить, он может помочь конкретизировать вопрос с помощью конкретных примеров кода.

t0mm13b 28.05.2019 02:25

Я не смог исследовать эту проблему, потому что ее невероятно сложно найти в Google/поиске. Вы просто получаете результаты для онлайн-ГСЧ и вопросов уровня CS1 о том, как создавать случайные числа на определенных языках. Лучшее решение, которое я могу придумать, — это использовать цену закрытия для конкретной акции в определенный день, чтобы засеять ГСЧ. Этот вопрос не имеет ничего общего с конкретными языками и/или фрагментами кода. Это больше о том, как решить конкретную проблему, связанную со случайными числами, которая может возникнуть в разработке программного обеспечения и где-либо еще.

jvn91173 28.05.2019 05:17
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
48
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете иметь в виду поддающиеся проверке случайные числа, которые представляют собой случайные числа, сгенерированные с использованием данных, которые будут раскрыты вместе со всей информацией, необходимой для их проверки. Я знаю, что наиболее активное использование поддающихся проверке случайных чисел на практике встречается в процедуре отбора в Комитет по назначениям Инженерной группы Интернета (или сокращенно NomCom). RFC 3797 описывает эту процедуру выбора, а также то, как в целом работает проверяемый случайный выбор.

Другой родственной технологией является проверяемая функция задержки, которая представляет собой функцию, которая требует заметного времени для вычислений (например, для хэширования общедоступных данных в случайное число), но для которой легко проверить правильность вывода. Это описано, в частности, в двух работах:

  • Ленстра, А.К., Весоловский, Б. «Случайный зоопарк: ленивец, единорог и trx», 2015 г. (до того, как была придумана эта концепция).
  • Боне, Д., Бонно, Дж., и соавт. «Функции проверяемой задержки», 2018.

Это именно то, что я искал. Я не знал, что этот термин существует, и мне приятно иметь слово, которое можно связать с этой концепцией. Ссылка RFC 3797 - отличное чтение ... спасибо!

jvn91173 29.05.2019 05:07

Другие вопросы по теме