Ну что, по итогам голосования большинство хотят задачки и sql. Такое имеется!
Встречалась мне несколько раз на собесах эта задача - видимо, любимая у эйчаров.
❗️Условие:
Бросаем кубик 🎲, выпадает число от 1 до 6. Дальше выбор:
✅ забрать этот результат как выигрыш,
🔄 либо перебросить кубик и забрать уже новый результат (пересдать нельзя, второй бросок финальный).
Вопрос: Какая оптимальная стратегия? То есть при каком результате первого броска выгоднее оставить его, а при каком - перебрасывать? Разберём два способа.
1️⃣ Решение первое - в лоб
У нас есть выбор:
- либо забрать результат сразу,
- либо перебросить (тогда ожидаемый выигрыш = мат. ожиданию кубика = 3.5, потому что (1+2+3+4+5+6)/6 = 3.5).
💡 Тут важный момент, который часто путают: при переброске мы бросаем новый независимый кубик, а не выбираем среди оставшихся чисел меньше порога. Кубику всё равно, что выпало в первый раз - снова может выпасть хоть 1, хоть 6. Поэтому ожидание переброса - это просто мат. ожидание обычного броска, и оно не зависит от порога x.
Значит логика такая:
🔸 если число на первом броске ≥ какого-то порога x - оставляем,
🔸 если < x - перебрасываем.
Возьмём порог 4 (то есть оставляем 4, 5, 6, а всё что меньше - перебрасываем) и проверим, выгодно ли это.
Вероятность оставить = 3(это 4,5,6) / 6 = 1/2
Средний выигрыш при этом = (4+5+6)/3 = 5
Вероятность перебросить = 3( это 1,2,3)/6 = 1/2
Ожидание переброса = 3.5 (это просто мат. ожидание кубика)
Используем формулу полного математического ожидания.
Логика такая: у нас есть два возможных сценария (оставить или перебросить), и у каждого своя вероятность и свой средний выигрыш. Чтобы получить общее ожидание, каждый сценарий умножаем на его вероятность и складываем:
E = P(оставить) × E(сред.выигрыш | оставили) + P(перебросить) × E(сред.выигрыш | перебросили)
Итоговое ожидание (E) при пороге 4 :
0.5 * 5 + 0.5 * 3.5 = 4.25
Вот и всё решение - просто взяли конкретный порог, посчитали, получили цифру. Работает, но если на собесе спросят а почему именно 4, а не 3? - с этим способом придётся объяснять на пальцах и перебирать варианты руками 🤪
2️⃣Решение второе — через общую формулу
Тут уже красивее: рассуждаем не про конкретное число, а про произвольный порог x.
🔹 Сколько чисел ≥ x? Таких 7−x штук.
Вероятность оставить = (7−x)/6
🔹 Средний выигрыш среди оставленных значений — это среднее арифметическое крайних членов равномерной последовательности от x до 6: (x+6)/2
🔹 Сколько чисел < x? Таких x−1 штук.
Вероятность перебросить = (x−1)/6
🔹 Ожидание переброса — как и раньше, 3.5 (константа, не зависит от x).
Собираем всё в одну формулу общего ожидания (тот же принцип взвешенного среднего, просто теперь с x вместо конкретного числа):
E(x) = (7-x)/6 * (x+6)/2 + (x-1)/6 * 3.5
Проверяем, что формула не врёт. Подставляем x = 4: (7-4)/6 * (4+6)/2 + (4-1)/6 * 3.5 = 4.25
Ответ совпадает с первым способом ✅.
💡 Дальше с такой формулой уже можно подставлять x = 1, 2, 3, 5 и сравнивать E(x), чтобы найти тот порог, при котором ожидание максимально - и вот это уже будет полноценным ответом на задачку, а не просто - ну вроде 4 неплохой вариант.
