«Люди будут приходить и уходить из вашей жизни, но вы никогда не должны позволять уйти тому, чей шаг оставил неизгладимое впечатление».
― Майкл Бэсси Джонсон
Рандомизация
Согласно Википедии: Рандомизация — это процесс создания чего-либо случайным; в различных контекстах это включает, например:
- генерирование случайной перестановки последовательности (например, при тасовке карт);
- отбор случайной выборки совокупности (важно при статистической выборке);
- распределение экспериментальных единиц посредством случайного распределения по лечебным или контрольным условиям;
- генерация случайных чисел (см. Генерация случайных чисел); или
- преобразование потока данных (например, при использовании шифратора в телекоммуникациях).
Рандомизация не случайна. Вместо этого случайный процесс представляет собой последовательность случайных переменных, описывающих процесс, результаты которого не следуют детерминированному шаблону, а следуют эволюции, описываемой распределениями вероятностей. Например, случайная выборка лиц из популяции относится к выборке, в которой каждый человек имеет известную вероятность быть включенным в выборку. Это противопоставляется невероятностной выборке, когда отбираются произвольные лица.
Я уверен, что некоторые читатели в первый раз могут найти приведенные выше абзацы намного выше их головы, позвольте мне упростить для вас. Рандомизация — это создание или генерация чего-либо случайным образом.
Что касается нашего языка программирования Python, то здесь есть модуль случайности, или как бы вы его ни называли.
Модуль random() — это встроенный модуль Python, используемый для генерации/создания/распределения случайных чисел.
Давайте немного изучим этот модуль.
Чтобы генерировать случайные числа в определенном диапазоне, мы можем использовать randint(). Например, чтобы сгенерировать случайное число от 0 до 1000, вы можете сначала импортировать модуль random и запустить следующий код:
import random random_integer = random.randint(0,100) print(random_integer)
Запустите это в Google Colab или любой другой Python IDE, и вы будете получать случайное число каждый раз, когда запускаете программу.
Давайте перейдем к нашему первому упражнению дня, где мы будем случайным образом получать орел или решку.
Упражнение 1. Печать головок или хвостов случайным образом
Постановка задачи. Вы собираетесь написать виртуальную программу подбрасывания монеты. Он случайным образом скажет пользователю «Орел» или «Решка».
Важно, первая буква должна быть заглавной и написана точно так же, как в примере, например. Головы, не головы.
Когда вы запускаете код, просто используйте случайное число в качестве начального числа. например 67346 Неважно, что вы выбрали, наш тестовый код проверяет вашу работу.
Есть много способов сделать это. Но чтобы попрактиковаться в том, что мы узнали на прошлом уроке, вы должны сгенерировать случайное число, либо 0, либо 1. Затем использовать это число для вывода орла или решки.
например 1 означает решку 0 означает решку
Решение:
import random # Head or Tails (hort) hort = random.randrange(0,1) if hort==1: print("Heads") else: print("Tails")
Запустив приведенный выше код, вы случайно получите орел или решку. Вы определенно можете поэкспериментировать с другими такими примерами.
Упражнение 2 — Банкирская рулетка
Постановка задачи. Вы собираетесь написать программу, которая будет выбирать случайное имя из списка имен. Выбранный человек должен будет оплатить счет за еду для всех.
Важно: вам не разрешено использовать функцию choice().
Разделите строку name_string на отдельные имена и поместите их в список с именами. Чтобы это работало, вы должны ввести все имена в виде имен, за которыми следует запятая, а затем пробел. например имя, имя, имя
Когда вы запускаете код, просто используйте случайное число в качестве начального значения. например 67346 Неважно, что вы выбрали, наш тестовый код проверяет вашу работу.
import random names_string = input("Give me everybody's names, separated by a comma and space: ") names = names_string.split(", ") length = len(names) bill = random.randint(0, length - 1) payup = names[bill] print(f"{payup} will pay the bill!")
Здесь мы использовали функцию split(), чтобы разделить имена с помощью запятой и пробела. Подробнее об этой функции можно прочитать здесь.
Мы рассмотрим больше упражнений в нашей следующей части с окончательным проектом на Карте сокровищ.
Подпишитесь на меня в LinkedIn, GitHub и Kaggle, чтобы получать больше подобных статей и сообщений.
Оставайтесь с нами, чтобы получить больше материалов по программированию на Python в ближайшие дни.