Как сделать случайное число не случайным?

Нужно чтобы по запросу выдавало случайное число, но 20% на 80%.

К примеру, из отрезка от 0 до 10, из 100 вызовов 20% выпадет 0-3, и 80% выпадет 4-10.

Не прошу готовой функции, но может быть кто-то знает алгоритм подобного рандомного числа? Или пример на любом языке, сам уже перепишу на python.
  • Вопрос задан
  • 2287 просмотров
Решения вопроса 1
@vilgeforce
Раздолбай и программист
Первый вызов rand показывает в какие "проценты" попадает следующее число, а потом дергается второй раз rand с нужными границами для получения самого числа, причем границы в зависимости от первого.

Касательно же случайности-неслучайности, rand в вашем случае наверняка не выдает случайной (!!!) последовательности.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
trec
@trec Автор вопроса
По предложению vilgeforce, сделал следующее:

from random import randint
def rrand(n):
	if randint(0,9) < n:
		return randint(0,1)
	return randint(2,9)

n - отвечает за % соотношение, в данном случае это 2, то есть 20%
(0,9) - диапазоны

Вот пример 10 тестов по 1000 вызовов функции:
3df45638debf4955bc994176e72d72b5.jpg

По результатам видим что приблизительно наши условия выполнены, мы получили ~20% одних ответов, и ~80% других. В моём случае, меня это устраивает.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы