Найти - Пользователи
Полная версия: Помогите запрограммировать алгоритм
Начало » Python для новичков » Помогите запрограммировать алгоритм
1
sovhoz
Добрый день. Уже пару дней бьюсь над простой задачей с виду.
Программа из мира ставок на спорт.

Есть игровой банк = 100 е.д. , ставка(процент от банка) и показатель прироста банка(%)

Алгоритм выглядит так:

1. Делаем ставки в размере 0.01 от банка, Пока банк не увеличивается на 0.25(25%)
2. Если банк увеличился , пересчитываем размер ставки с поправкой на новый размер банка(125), т.е 0.01 от 125
3. Если увеличился еще на 0.25, то опять поправляем размер ставки и так пока делаются ставки
4. Если размер банка уменьшился на 0.25(с 125 стал 100, 156 стал 125, с 195 стал 156 и т.д.) то поправляем размер ставки на предыдущий уровень и и ставим дальше
5. Если банк == 0 или банк < 0, выходим

т.е идет поток ставок, а программа сама считает размеры ставок в зависимости от значения банка
пробовал так и сяк, рекурсию подключал ловил висяки
doza_and
:) из книги Экономика Ядерной Энергетики: “Глядя на труды наших экономистов складывается впечатление что они живут в доньютонову эпоху, когда функция E^x еще не была открыта”.

Глядя на методы расчета тарифов за телефон ЖКХ и т.п. у меня складыватся впечатление что мы продвинулись дальше. Начали забываться операции умножения и деления.

Полагаю что проблема у вас не в написании программы а в придумывании алгоритма. Почему у вас банк может уменьшиться, Зачем это проверять? Откуда магическое число 0.25. Требуется банк распределять справедливо или нет? И эти вопросы можно множить и множить.

Может вам поможет такое описание:

Происходит спортивное состояние которое имеет один из N исходов.
На каждый исход человек может сделать ставку M_i,k единиц i номер человека k номер исхода.
После окончания приема ставок можно посчитать полную сумму банка S
При по окончании соревнования Выигрывает вариант K
Из банка украдается доля средств S1=S*k_stollen
Выбираются персоны которые сделали ставку на текущий выигрыш. и для них считаются доли от банка
part_i,K=(M_i,K)/(sum_i M_i,K)
Выплаты распределяются пропорционально ставкам. V_i,K= Part_i,K*S1, V_i,k =0 if k!=K

Упражнение.
Задача 1. Докажите, что после выплат в банке не останется средств.
Задача 2. Пусть заданы вероятности угадывания для каждой из персон. И полное количество средств у них фиксировано. Какова выигрышная стратегия? Как распределятся средства после бесконечного числа Игр (k_stollen=1)? Как это распределение зависит от начального распределения средств?

Т

sovhoz
Банк может уменьшиться из-за проигрыша ставки, можно получить 10 проигрышей в подряд или 20..
0.25 - это не суть , может быть любое число.
участник по умолчанию один.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB