Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # нам будут нужны функции получения для случайных значений (импортируем их)
- import random
- # напишем вспомогательный класс
- class MH:
- # выигрышная комната
- win_room = None
- # выбранная нами комната
- selected_room = None
- # конструктор класса
- def __init__(self):
- # генерируем случайную выигрышную комнату от 1 до 3 (может покаться что от 1..4, но на самом деле 1..3)
- self.win_room = random.randrange(0, 3) + 1
- # функция выбора комнаты пользователем
- def select(self, value):
- self.selected_room = value
- # вернем пустую комнату, которая не будет уже выбранной или выигрышной
- def get_empty(self):
- empty = self.win_room
- while (empty == self.win_room) or (empty == self.selected_room):
- empty = random.randrange(0, 3) + 1
- return empty
- # проверим выиграли ли мы
- def is_win(self):
- return self.selected_room == self.win_room
- # теперь программа
- # менять ли выбор?
- change = True
- # количество проверок
- max_count = 1000000
- # счетчики выигрышей / проигрышей
- win_count = 0
- lose_count = 0
- # счетчик шагов
- step = 0
- # цикл проверок
- while step <= max_count:
- # создаем объект класса MH (вызовется конструктор класса - функция def __init__() сверху)
- # она генерирует случайную выигрышную комнату
- mh = MH()
- # мы выбираем случайную комнату
- room = random.randrange(0, 3) + 1
- mh.select(room)
- # узнаем пустую комнату
- empty_room = mh.get_empty()
- # меняем наш выбор (только если change == True в настройках сверху)
- if change:
- new_room = room
- # ищем в цикле комнату которая не является пустой или выбранной нами ранее.
- while (new_room == empty_room) or (new_room == room):
- new_room = random.randrange(0, 3) + 1
- mh.select(new_room)
- # узнаем выиграли ли мы
- if mh.is_win():
- win_count += 1
- else:
- lose_count += 1
- step += 1
- # выводим нашу статистику
- print("win: ", (win_count / max_count) * 100, "%, lose: ", (lose_count / max_count) * 100, "%")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement