Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Bag of Santa Claus by BrianMcleod
class Max_Gift:
max_gift_value = 0.0
def __init__(self, current_gift, start = False):
self.current_max = current_gift > Max_Gift.max_gift_value
if start:
Max_Gift.max_gift_value = current_gift
else:
Max_Gift.max_gift_value = max(current_gift, Max_Gift.max_gift_value)
return
def choose_good_gift(current_gift, gifts_in_bag, gift_number):
from random import random
start_estimator_percentage = 0.25
remaining_probability = 0.2
if gift_number == gifts_in_bag:
return True
if gift_number == 1:
gift = Max_Gift(current_gift, True)
if gift_number < gifts_in_bag*start_estimator_percentage:
gift = Max_Gift(current_gift)
else:
gift = Max_Gift(current_gift)
if gift.current_max:
r = gift_number/(gift_number+1)
p = pow(r, (gifts_in_bag - gift_number))
if p > remaining_probability:
return True
return False
Sept. 13, 2018