Skip to content

Instantly share code, notes, and snippets.

@iddoeldor
Last active February 27, 2019 19:30
Show Gist options
  • Save iddoeldor/6b75cf19814a7019c215e43fc7632d9d to your computer and use it in GitHub Desktop.
Save iddoeldor/6b75cf19814a7019c215e43fc7632d9d to your computer and use it in GitHub Desktop.
N people each one get a real number, they cannot talk and etc.. they guess there number in the same time.. they need at least one to guess right
Combination PG1 PG2 PG3 PG4 Win
[1, 1, 1, 1] 1 2 3 4 True
[1, 1, 1, 2] 4 1 2 4 True
[1, 1, 1, 3] 3 4 1 4 True
[1, 1, 1, 4] 2 3 4 4 True
[1, 1, 2, 1] 4 1 3 3 True
[1, 1, 2, 2] 3 4 2 3 True
[1, 1, 2, 3] 2 3 1 3 True
[1, 1, 2, 4] 1 2 4 3 True
[1, 1, 3, 1] 3 4 3 2 True
[1, 1, 3, 2] 2 3 2 2 True
[1, 1, 3, 3] 1 2 1 2 True
[1, 1, 3, 4] 4 1 4 2 True
[1, 1, 4, 1] 2 3 3 1 True
[1, 1, 4, 2] 1 2 2 1 True
[1, 1, 4, 3] 4 1 1 1 True
[1, 1, 4, 4] 3 4 4 1 True
[1, 2, 1, 1] 4 2 2 3 True
[1, 2, 1, 2] 3 1 1 3 True
[1, 2, 1, 3] 2 4 4 3 True
[1, 2, 1, 4] 1 3 3 3 True
[1, 2, 2, 1] 3 1 2 2 True
[1, 2, 2, 2] 2 4 1 2 True
[1, 2, 2, 3] 1 3 4 2 True
[1, 2, 2, 4] 4 2 3 2 True
[1, 2, 3, 1] 2 4 2 1 True
[1, 2, 3, 2] 1 3 1 1 True
[1, 2, 3, 3] 4 2 4 1 True
[1, 2, 3, 4] 3 1 3 1 True
[1, 2, 4, 1] 1 3 2 4 True
[1, 2, 4, 2] 4 2 1 4 True
[1, 2, 4, 3] 3 1 4 4 True
[1, 2, 4, 4] 2 4 3 4 True
[1, 3, 1, 1] 3 2 1 2 True
[1, 3, 1, 2] 2 1 4 2 True
[1, 3, 1, 3] 1 4 3 2 True
[1, 3, 1, 4] 4 3 2 2 True
[1, 3, 2, 1] 2 1 1 1 True
[1, 3, 2, 2] 1 4 4 1 True
[1, 3, 2, 3] 4 3 3 1 True
[1, 3, 2, 4] 3 2 2 1 True
[1, 3, 3, 1] 1 4 1 4 True
[1, 3, 3, 2] 4 3 4 4 True
[1, 3, 3, 3] 3 2 3 4 True
[1, 3, 3, 4] 2 1 2 4 True
[1, 3, 4, 1] 4 3 1 3 True
[1, 3, 4, 2] 3 2 4 3 True
[1, 3, 4, 3] 2 1 3 3 True
[1, 3, 4, 4] 1 4 2 3 True
[1, 4, 1, 1] 2 2 4 1 True
[1, 4, 1, 2] 1 1 3 1 True
[1, 4, 1, 3] 4 4 2 1 True
[1, 4, 1, 4] 3 3 1 1 True
[1, 4, 2, 1] 1 1 4 4 True
[1, 4, 2, 2] 4 4 3 4 True
[1, 4, 2, 3] 3 3 2 4 True
[1, 4, 2, 4] 2 2 1 4 True
[1, 4, 3, 1] 4 4 4 3 True
[1, 4, 3, 2] 3 3 3 3 True
[1, 4, 3, 3] 2 2 2 3 True
[1, 4, 3, 4] 1 1 1 3 True
[1, 4, 4, 1] 3 3 4 2 True
[1, 4, 4, 2] 2 2 3 2 True
[1, 4, 4, 3] 1 1 2 2 True
[1, 4, 4, 4] 4 4 1 2 True
[2, 1, 1, 1] 1 1 2 3 True
[2, 1, 1, 2] 4 4 1 3 True
[2, 1, 1, 3] 3 3 4 3 True
[2, 1, 1, 4] 2 2 3 3 True
[2, 1, 2, 1] 4 4 2 2 True
[2, 1, 2, 2] 3 3 1 2 True
[2, 1, 2, 3] 2 2 4 2 True
[2, 1, 2, 4] 1 1 3 2 True
[2, 1, 3, 1] 3 3 2 1 True
[2, 1, 3, 2] 2 2 1 1 True
[2, 1, 3, 3] 1 1 4 1 True
[2, 1, 3, 4] 4 4 3 1 True
[2, 1, 4, 1] 2 2 2 4 True
[2, 1, 4, 2] 1 1 1 4 True
[2, 1, 4, 3] 4 4 4 4 True
[2, 1, 4, 4] 3 3 3 4 True
[2, 2, 1, 1] 4 1 1 2 True
[2, 2, 1, 2] 3 4 4 2 True
[2, 2, 1, 3] 2 3 3 2 True
[2, 2, 1, 4] 1 2 2 2 True
[2, 2, 2, 1] 3 4 1 1 True
[2, 2, 2, 2] 2 3 4 1 True
[2, 2, 2, 3] 1 2 3 1 True
[2, 2, 2, 4] 4 1 2 1 True
[2, 2, 3, 1] 2 3 1 4 True
[2, 2, 3, 2] 1 2 4 4 True
[2, 2, 3, 3] 4 1 3 4 True
[2, 2, 3, 4] 3 4 2 4 True
[2, 2, 4, 1] 1 2 1 3 True
[2, 2, 4, 2] 4 1 4 3 True
[2, 2, 4, 3] 3 4 3 3 True
[2, 2, 4, 4] 2 3 2 3 True
[2, 3, 1, 1] 3 1 4 1 True
[2, 3, 1, 2] 2 4 3 1 True
[2, 3, 1, 3] 1 3 2 1 True
[2, 3, 1, 4] 4 2 1 1 True
[2, 3, 2, 1] 2 4 4 4 True
[2, 3, 2, 2] 1 3 3 4 True
[2, 3, 2, 3] 4 2 2 4 True
[2, 3, 2, 4] 3 1 1 4 True
[2, 3, 3, 1] 1 3 4 3 True
[2, 3, 3, 2] 4 2 3 3 True
[2, 3, 3, 3] 3 1 2 3 True
[2, 3, 3, 4] 2 4 1 3 True
[2, 3, 4, 1] 4 2 4 2 True
[2, 3, 4, 2] 3 1 3 2 True
[2, 3, 4, 3] 2 4 2 2 True
[2, 3, 4, 4] 1 3 1 2 True
[2, 4, 1, 1] 2 1 3 4 True
[2, 4, 1, 2] 1 4 2 4 True
[2, 4, 1, 3] 4 3 1 4 True
[2, 4, 1, 4] 3 2 4 4 True
[2, 4, 2, 1] 1 4 3 3 True
[2, 4, 2, 2] 4 3 2 3 True
[2, 4, 2, 3] 3 2 1 3 True
[2, 4, 2, 4] 2 1 4 3 True
[2, 4, 3, 1] 4 3 3 2 True
[2, 4, 3, 2] 3 2 2 2 True
[2, 4, 3, 3] 2 1 1 2 True
[2, 4, 3, 4] 1 4 4 2 True
[2, 4, 4, 1] 3 2 3 1 True
[2, 4, 4, 2] 2 1 2 1 True
[2, 4, 4, 3] 1 4 1 1 True
[2, 4, 4, 4] 4 3 4 1 True
[3, 1, 1, 1] 1 4 1 2 True
[3, 1, 1, 2] 4 3 4 2 True
[3, 1, 1, 3] 3 2 3 2 True
[3, 1, 1, 4] 2 1 2 2 True
[3, 1, 2, 1] 4 3 1 1 True
[3, 1, 2, 2] 3 2 4 1 True
[3, 1, 2, 3] 2 1 3 1 True
[3, 1, 2, 4] 1 4 2 1 True
[3, 1, 3, 1] 3 2 1 4 True
[3, 1, 3, 2] 2 1 4 4 True
[3, 1, 3, 3] 1 4 3 4 True
[3, 1, 3, 4] 4 3 2 4 True
[3, 1, 4, 1] 2 1 1 3 True
[3, 1, 4, 2] 1 4 4 3 True
[3, 1, 4, 3] 4 3 3 3 True
[3, 1, 4, 4] 3 2 2 3 True
[3, 2, 1, 1] 4 4 4 1 True
[3, 2, 1, 2] 3 3 3 1 True
[3, 2, 1, 3] 2 2 2 1 True
[3, 2, 1, 4] 1 1 1 1 True
[3, 2, 2, 1] 3 3 4 4 True
[3, 2, 2, 2] 2 2 3 4 True
[3, 2, 2, 3] 1 1 2 4 True
[3, 2, 2, 4] 4 4 1 4 True
[3, 2, 3, 1] 2 2 4 3 True
[3, 2, 3, 2] 1 1 3 3 True
[3, 2, 3, 3] 4 4 2 3 True
[3, 2, 3, 4] 3 3 1 3 True
[3, 2, 4, 1] 1 1 4 2 True
[3, 2, 4, 2] 4 4 3 2 True
[3, 2, 4, 3] 3 3 2 2 True
[3, 2, 4, 4] 2 2 1 2 True
[3, 3, 1, 1] 3 4 3 4 True
[3, 3, 1, 2] 2 3 2 4 True
[3, 3, 1, 3] 1 2 1 4 True
[3, 3, 1, 4] 4 1 4 4 True
[3, 3, 2, 1] 2 3 3 3 True
[3, 3, 2, 2] 1 2 2 3 True
[3, 3, 2, 3] 4 1 1 3 True
[3, 3, 2, 4] 3 4 4 3 True
[3, 3, 3, 1] 1 2 3 2 True
[3, 3, 3, 2] 4 1 2 2 True
[3, 3, 3, 3] 3 4 1 2 True
[3, 3, 3, 4] 2 3 4 2 True
[3, 3, 4, 1] 4 1 3 1 True
[3, 3, 4, 2] 3 4 2 1 True
[3, 3, 4, 3] 2 3 1 1 True
[3, 3, 4, 4] 1 2 4 1 True
[3, 4, 1, 1] 2 4 2 3 True
[3, 4, 1, 2] 1 3 1 3 True
[3, 4, 1, 3] 4 2 4 3 True
[3, 4, 1, 4] 3 1 3 3 True
[3, 4, 2, 1] 1 3 2 2 True
[3, 4, 2, 2] 4 2 1 2 True
[3, 4, 2, 3] 3 1 4 2 True
[3, 4, 2, 4] 2 4 3 2 True
[3, 4, 3, 1] 4 2 2 1 True
[3, 4, 3, 2] 3 1 1 1 True
[3, 4, 3, 3] 2 4 4 1 True
[3, 4, 3, 4] 1 3 3 1 True
[3, 4, 4, 1] 3 1 2 4 True
[3, 4, 4, 2] 2 4 1 4 True
[3, 4, 4, 3] 1 3 4 4 True
[3, 4, 4, 4] 4 2 3 4 True
[4, 1, 1, 1] 1 3 4 1 True
[4, 1, 1, 2] 4 2 3 1 True
[4, 1, 1, 3] 3 1 2 1 True
[4, 1, 1, 4] 2 4 1 1 True
[4, 1, 2, 1] 4 2 4 4 True
[4, 1, 2, 2] 3 1 3 4 True
[4, 1, 2, 3] 2 4 2 4 True
[4, 1, 2, 4] 1 3 1 4 True
[4, 1, 3, 1] 3 1 4 3 True
[4, 1, 3, 2] 2 4 3 3 True
[4, 1, 3, 3] 1 3 2 3 True
[4, 1, 3, 4] 4 2 1 3 True
[4, 1, 4, 1] 2 4 4 2 True
[4, 1, 4, 2] 1 3 3 2 True
[4, 1, 4, 3] 4 2 2 2 True
[4, 1, 4, 4] 3 1 1 2 True
[4, 2, 1, 1] 4 3 3 4 True
[4, 2, 1, 2] 3 2 2 4 True
[4, 2, 1, 3] 2 1 1 4 True
[4, 2, 1, 4] 1 4 4 4 True
[4, 2, 2, 1] 3 2 3 3 True
[4, 2, 2, 2] 2 1 2 3 True
[4, 2, 2, 3] 1 4 1 3 True
[4, 2, 2, 4] 4 3 4 3 True
[4, 2, 3, 1] 2 1 3 2 True
[4, 2, 3, 2] 1 4 2 2 True
[4, 2, 3, 3] 4 3 1 2 True
[4, 2, 3, 4] 3 2 4 2 True
[4, 2, 4, 1] 1 4 3 1 True
[4, 2, 4, 2] 4 3 2 1 True
[4, 2, 4, 3] 3 2 1 1 True
[4, 2, 4, 4] 2 1 4 1 True
[4, 3, 1, 1] 3 3 2 3 True
[4, 3, 1, 2] 2 2 1 3 True
[4, 3, 1, 3] 1 1 4 3 True
[4, 3, 1, 4] 4 4 3 3 True
[4, 3, 2, 1] 2 2 2 2 True
[4, 3, 2, 2] 1 1 1 2 True
[4, 3, 2, 3] 4 4 4 2 True
[4, 3, 2, 4] 3 3 3 2 True
[4, 3, 3, 1] 1 1 2 1 True
[4, 3, 3, 2] 4 4 1 1 True
[4, 3, 3, 3] 3 3 4 1 True
[4, 3, 3, 4] 2 2 3 1 True
[4, 3, 4, 1] 4 4 2 4 True
[4, 3, 4, 2] 3 3 1 4 True
[4, 3, 4, 3] 2 2 4 4 True
[4, 3, 4, 4] 1 1 3 4 True
[4, 4, 1, 1] 2 3 1 2 True
[4, 4, 1, 2] 1 2 4 2 True
[4, 4, 1, 3] 4 1 3 2 True
[4, 4, 1, 4] 3 4 2 2 True
[4, 4, 2, 1] 1 2 1 1 True
[4, 4, 2, 2] 4 1 4 1 True
[4, 4, 2, 3] 3 4 3 1 True
[4, 4, 2, 4] 2 3 2 1 True
[4, 4, 3, 1] 4 1 1 4 True
[4, 4, 3, 2] 3 4 4 4 True
[4, 4, 3, 3] 2 3 3 4 True
[4, 4, 3, 4] 1 2 2 4 True
[4, 4, 4, 1] 3 4 1 3 True
[4, 4, 4, 2] 2 3 4 3 True
[4, 4, 4, 3] 1 2 3 3 True
[4, 4, 4, 4] 4 1 2 3 True
from itertools import product, repeat
def f(sum_others, idx):
mN = N - ((sum_others + ((N - idx) % N)) % N)
return N if mN == 0 else mN
N = 4
fw = open('out.tsv', 'w')
# PG = Person Guess
fw.write('Combination\t' + ''.join(['PG%d\t' % (i + 1) for i in range(N)]) + 'Win\n')
N_length_combinations_of_real_numbers_from_1_to_N = [list(elem) for elem in product(*repeat(list(range(1, N + 1)), N))]
for combination in N_length_combinations_of_real_numbers_from_1_to_N:
sum_combination = sum(combination)
'''
Iterating combinations:
current_guess = combination[person_idx]
sum_other_viewable_numbers = sum_combination - current_guess
'''
guesses = [f(sum_combination - combination[person_idx], person_idx) for person_idx in range(N)]
# success if at least one guessed right, at least once guesses[i] == combination[i]
success = True in [guesses[i] == combination[i] for i in range(N)]
print('%s\t%s\t%s' % (combination, '\t'.join([str(guesses[i]) for i in range(N)]), success), file=fw)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment