Advertisement
Noam_15

Hanukkah Riddle

Dec 13th, 2020
882
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.56 KB | None | 0 0
  1. # A python template to insert your solution for this
  2. # riddle: https://www.idf.il/%D7%90%D7%AA%D7%A8%D7%99%D7%9D/%D7%96%D7%A8%D7%95%D7%A2-%D7%94%D7%99%D7%91%D7%A9%D7%94/2020/%D7%97%D7%99%D7%93%D7%AA-%D7%9E%D7%A6%D7%95%D7%91-%D7%9E%D7%99%D7%95%D7%97%D7%93%D7%AA-%D7%9C%D7%97%D7%A0%D7%95%D7%9B%D7%94/
  3.  
  4.  
  5. from itertools import product
  6.  
  7. # Numbers: 0...PEOPLE_NUM-1
  8. PEOPLE_NUM = 2 # (100 is too slow)
  9.  
  10. def get_all_possible_numbers(people_num: int):
  11.     return (list(i) for i in product(range(0, people_num), repeat=people_num))
  12.  
  13. def hide_number_in_index(numbers: list, index: int):
  14.     numbers_copy = numbers.copy()
  15.     numbers_copy[index] = None
  16.     return numbers_copy
  17.  
  18. def find_good_guess_index(guesses: list, real_numbers: list):
  19.     for ind, guess in enumerate(guesses):
  20.         if guess == real_numbers[ind]:
  21.             return ind
  22.     return -1
  23.  
  24. # Anything you need to store before start. Readonly.
  25. store = ()
  26.  
  27. def single_guess(my_ind: int, all_people_except_me: list):
  28.     # TODO: * Your code here *
  29.     return 1
  30.  
  31.  
  32. # Start:
  33.  
  34. all_good = True
  35.  
  36. for real_numbers in get_all_possible_numbers(PEOPLE_NUM):
  37.     guesses = [single_guess(ind, hide_number_in_index(real_numbers, ind))
  38.         for ind, num in enumerate(real_numbers)]
  39.  
  40.     good_guess_index = find_good_guess_index(guesses, real_numbers)
  41.     is_good_guess = good_guess_index > -1
  42.  
  43.     if not is_good_guess:
  44.         all_good = False
  45.  
  46.     message = f"GOOD! ({good_guess_index})" if is_good_guess else "*BAD!*"
  47.     print(f'{real_numbers} TO {guesses}   => {message}')
  48.  
  49. print(f"All Good: {all_good}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement