«Бог не играет в кости», – говорит Эйнштейн. Но мы делаем! Что, если было 7 игроков, и вам придется случайным образом выбрать один с 6 костями на лице?
Позвольте мне развернуть вопрос: что, если бы была функция (Называется rand6) Это случайно генерирует N по всему числу от 1 до 6, и вы должны написать другую функцию (Называется rand7) Это генерирует случайный N Акатурное число от 1 до 7 с использованием первой функции (RAND6) ? И rand6 сбалансирован.
Обратите внимание, что вероятность всех событий должна быть равной!
Подождите минутку! Считать! Или просто пропустите этот шаг к моему глупому решению.
Идея состоит в том, чтобы запустить избирательную кампанию! будет local_max_count
Это будет держать ведущие кандидаты, которые имеют равные голоса. Кандидаты являются одним из {1,2,3,4,5,6,7}, которые пройдут на второй, третий или n* th* выборы. И есть также Global_max
переменная, которая сохраняет максимальное количество голосов ведущего кандидата.
int local_max_count = -1;
На каждом выборах мы играем в кубиках для каждого кандидата (не совсем то, что сделан Facebook), и это число будет его подсчетом.
for (int i = 0; i < 7 ; i ++) if (votes[i] == global_max) { local_max_count ++; // call the rand6() votes[i] = rand6(); }
Тогда Глобальный Макс
определяется как:
// Find the array maximum for (int i = 0; i < 7 ; i ++) global_max = max (global_max, votes[i]);
И если был уникальный лучший кандидат, функция вернет это в качестве ответа:
if (local_max_count == 0) for (int i = 0; i < 7 ; i ++) if (votes[i] == global_max) return i + 1; // i + 1 because normal people start counting from 1.
Но что, если было два или много других кандидатов?
Есть смысл в том, что мы должны рекурсивно вызвать нашу функцию и изменить строку в //выборы
Код для добавления значения к предыдущему значению:
votes[i] += rand6();
Вы можете запустить эту функцию в течение 1000 раз и визуализировать выход с пирог
Или что -то, что вы пожелаете. Но это должно быть что -то вроде изображения ниже, потому что у всех чисел должен быть такой же шанс, чтобы сохранить справедливые.
Что если rand6
Функция была неуравновешенной?
Оригинал: “https://dev.to/tayyebi/7-face-dice-2cgc”