Digger Man
Любитель Linux Arch
Автор темы
Всем привет, увидел тут пару тем по поводу рандома, люди пытаются находить какие то последовательности в рандоме и найти закономерности, я бы хотел разобрать несколько видов рандома и рассказать, что такое реальный рандом в сфере разработки.
Что вообще такое рандом в сфере разработки чего либо? Это какой то алгоритм, заданный разработчик ПО, который соблюдает несколько условий, приведу пример своего рандома : берется время до сотых миллисекунд, складываются все числа и делятся на 100 и если число кратно 3 то умножаем на 5, иначе делим на 8, вот такой пример псевдо рандома, найти последовательность в таком алгоритме очень тяжело, но важно, ибо зная этот алгоритм можно всегда находить правильные значения.
Что же такое почти реальный рандом? Это рандом представляющий нам random.org.
Дело в том, что random org работает с помощью данных атмосферного шума(Atmospheric Noise), объясню вам коротко алгоритм, есть такое физическое явление это атмосферный шум, дело в том, что он является своеобразными радиопомехами, вызванными естественным путем, этими процессами являются разряды молний и подобные физические явления, каждую секунду в мире происходит около 45 вспышек молний(это 3.5 милиона молний в день) помимо этого происходит куча других процессов, влияющих на значение атмосферного шума, такой рандом в отличие от псевдо рандома, имеет полную апериодичность.
Как определить случайного победителя с помощью random.org
Какой вывод? Искать какие то закономерности в рандоме каких то лотерей или подобный сервисах бессмысленно, ведь скорее всего они работают по примеру реального рандома.
Источник: www.blast.hk
Что за программа random
Модуль random управляет генерацией случайных чисел. Его основные функции:
- random() : генерирует случайное число от 0.0 до 1.0
- randint() : возвращает случайное число из определенного диапазона
- randrange() : возвращает случайное число из определенного набора чисел
- shuffle() : перемешивает список
- choice() : возвращает случайный элемент списка
Функция random() возвращает случайное число с плавающей точкой в промежутке от 0.0 до 1.0. Если же нам необходимо число из большего диапазона, скажем от 0 до 100, то мы можем соответственно умножить результат функции random на 100.
import random number = random.random() # значение от 0.0 до 1.0 print(number) number = random.random() * 100 # значение от 0.0 до 100.0 print(number)
Функция randint(min, max) возвращает случайное целое число в промежутке между двумя значениями min и max.
import random number = random.randint(20, 35) # значение от 20 до 35 print(number)
Функция randrange() возвращает случайное целое число из определенного набора чисел. Она имеет три формы:
- randrange(stop) : в качестве набора чисел, из которых происходит извлечение случайного значения, будет использоваться диапазон от 0 до числа stop
- randrange(start, stop) : набор чисел представляет диапазон от числа start до числа stop
- randrange(start, stop, step) : набор чисел представляет диапазон от числа start до числа stop, при этом каждое число в диапазоне отличается от предыдущего на шаг step
import random number = random.randrange(10) # значение от 0 до 10 не включая print(number) number = random.randrange(2, 10) # значение в диапазоне 2, 3, 4, 5, 6, 7, 8, 9 print(number) number = random.randrange(2, 10, 2) # значение в диапазоне 2, 4, 6, 8 print(number)
Работа со списком
Для работы со списками в модуле random определены две функции: функция shuffle() перемешивает список случайным образом, а функция choice() возвращает один случайный элемент из списка:
🎲 Как работает Random в играх
numbers = [1, 2, 3, 4, 5, 6, 7, 8] random.shuffle(numbers) print(numbers) random_number = random.choice(numbers) print(random_number)
Источник: metanit.com
«Случайные» числа в Python – random, randint и randrange
В компьютерных программах нередко требуется эмуляция случайности. Например, при разработке игр. Если в программе имеется некий генератор, то есть производитель, случайного числа, то, используя полученное таким образом число, можно выбирать ту или иную ветку выполнения программы, или произвольный объект из коллекции. Другими словами, главное – сгенерировать число. Эмуляция случайности иного рода основывается на нем.