Advertisement
DarkoreXOR

Untitled

Dec 12th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.80 KB | None | 0 0
  1. # нам будут нужны функции получения для случайных значений (импортируем их)
  2.  
  3. import random
  4.  
  5. # напишем вспомогательный класс
  6.  
  7. class MH:
  8.     # выигрышная комната
  9.     win_room = None
  10.  
  11.     # выбранная нами комната
  12.     selected_room = None
  13.  
  14.     # конструктор класса
  15.     def __init__(self):
  16.         # генерируем случайную выигрышную комнату от 1 до 3 (может покаться что от 1..4, но на самом деле 1..3)
  17.         self.win_room = random.randrange(0, 3) + 1
  18.  
  19.     # функция выбора комнаты пользователем
  20.     def select(self, value):
  21.         self.selected_room = value
  22.  
  23.     # вернем пустую комнату, которая не будет уже выбранной или выигрышной
  24.     def get_empty(self):
  25.         empty = self.win_room
  26.  
  27.         while (empty == self.win_room) or (empty == self.selected_room):
  28.             empty = random.randrange(0, 3) + 1
  29.  
  30.         return empty
  31.  
  32.     # проверим выиграли ли мы
  33.     def is_win(self):
  34.         return self.selected_room == self.win_room
  35.  
  36.  
  37.  
  38. # теперь программа
  39.  
  40. # менять ли выбор?
  41. change = True
  42.  
  43. # количество проверок
  44. max_count = 1000000
  45.  
  46. # счетчики выигрышей / проигрышей
  47. win_count = 0
  48. lose_count = 0
  49.  
  50. # счетчик шагов
  51. step = 0
  52.  
  53. # цикл проверок
  54.  
  55. while step <= max_count:
  56.  
  57.     # создаем объект класса MH (вызовется конструктор класса - функция def __init__() сверху)
  58.     # она генерирует случайную выигрышную комнату
  59.     mh = MH()
  60.  
  61.     # мы выбираем случайную комнату
  62.     room = random.randrange(0, 3) + 1
  63.     mh.select(room)
  64.  
  65.     # узнаем пустую комнату
  66.     empty_room = mh.get_empty()
  67.  
  68.     # меняем наш выбор (только если change == True в настройках сверху)
  69.     if change:
  70.         new_room = room
  71.  
  72.         # ищем в цикле комнату которая не является пустой или выбранной нами ранее.
  73.         while (new_room == empty_room) or (new_room == room):
  74.             new_room = random.randrange(0, 3) + 1
  75.  
  76.         mh.select(new_room)
  77.  
  78.     # узнаем выиграли ли мы
  79.  
  80.     if mh.is_win():
  81.         win_count += 1
  82.     else:
  83.         lose_count += 1
  84.  
  85.     step += 1
  86.  
  87.  
  88. # выводим нашу статистику
  89.  
  90. print("win: ", (win_count / max_count) * 100, "%, lose: ", (lose_count / max_count) * 100, "%")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement