Форум сайта python.su
Уважаемые форумчане, помогите, пожалуйста, решить задачу!
Необходимо смоделировать игру против лотерейного автомата типа “777”. Игрок платит 1 руб., после чего выпадает случайное целое число, равномерно распределенное от 0 до 999. При некоторых значениях числа игрок получает выигрыш.
Например:
777: 200 руб.
999: 100 руб.
555: 50 руб.
333: 15 руб.
111: 10 руб.
Вопросы:
Выгодна ли игра игроку?
Сколько в среднем приобретает или теряет игрок за одну игру?
Заранее спасибо за помощь!)
Офлайн
import random win = {777: 200, 999: 100, 555: 50, 333: 15, 111: 10} walet = 1_000_000 bet = 1 count = 0 good = 0 bad = 0 xz = [] while walet > 0: count += 1 walet -= 1 game_ = random.randint(0, 999) if game_ in win: walet += win[game_] xz.append(win[game_]) good += 1 print(f'# {count} / win / game {game_} / walet {walet}') else: bad += 1 print(f'# {count} / lose / game {game_} / walet {walet}') print(f'\n{"#" * 70}\nend: bad - {bad}, good - {good} :: count - {count}, xz - {xz}')
Отредактировано AD0DE412 (Июль 18, 2022 12:00:21)
Офлайн
lizzyone
Выгодна ли игра игроку?
Сколько в среднем приобретает или теряет игрок за одну игру?
from random import randint WINS = { 777: 200, 999: 100, 555: 50, 333: 15, 111: 10 } received = 0 spent = 0 while True: play = input('Нажмите ENTER чтобы вкинуть монету. Введите "в" для выхода.') if play == '': current = randint(0, 999) print(current) if current in WINS: print('Вы выиграли!') received += WINS[current] else: spent += 1 print('Денег выигранно: ', received) print('Денег проигранно: ', spent) continue elif play.lower() == 'в': break else: continue
Отредактировано Palrom (Июль 18, 2022 15:02:24)
Офлайн
AD0DE412
Тренажёр “Всаживаем лям за полторы минуты”
Офлайн
AD0DE412спасибо вам большое!)
Офлайн
Palromспасибо большое!)
Офлайн
Palrom
Всаживаем лям за полторы минуты
Отредактировано AD0DE412 (Июль 18, 2022 18:36:02)
Офлайн
Palrom
AD0DE412подскажите еще, пожалуйста, как записать в WINS/win еще эти цифры?
Отредактировано lizzyone (Июль 22, 2022 19:44:05)
Офлайн
lizzyone
from random import randint WINS = { 777: 200, 999: 100, 555: 50, 333: 15, 111: 10 } def check_tail(current): if current % 100 == 0: return 2 elif current % 100 == 77: return 5 elif current > 100: if current % 10 == 0: return 1 elif current % 10 == 7: return 3 return 0 def get_current(): return randint(0, 999) def main(): received = 0 spent = 0 while True: play = input('Нажмите ENTER чтобы вкинуть монету. Введите "в" для выхода.') if play == '': print(current := get_current()) if current in WINS: received += WINS[current] elif tail := check_tail(current): received += tail spent += 1 print('Денег выигранно: ', received) print('Денег проигранно: ', spent) continue elif play.lower() == 'в': break if __name__ == '__main__': main()
AD0DE412
у нас было 2 пакета рублей …
Отредактировано Palrom (Июль 23, 2022 09:58:31)
Офлайн