How to Cheat with Math – The Russian Cards Problem
winux-arch.github.io
How to Cheat with Math – The Russian Cards Problem
1–8 of 8 posts
Re: How to Cheat with Math – The Russian Cards Problem
#2Re: How to Cheat with Math – The Russian Cards Problem
#3Re: How to Cheat with Math – The Russian Cards Problem
#4Problem solved!
Re: How to Cheat with Math – The Russian Cards Problem
#5Does "the sum of my cards modulo 7 is [x]" work? It should let Bob know what the missing card is but I can't tell if it conveys sufficiently little information to Eve for it to count.
Re: How to Cheat with Math – The Russian Cards Problem
#6Does "the sum of my cards modulo 7 is [x]" work? It should let Bob know what the missing card is but I can't tell if it conveys sufficiently little information to Eve for it to count.
Is the modulo required? Is just "The sum of my cards is x" sufficient?
Re: How to Cheat with Math – The Russian Cards Problem
#7Re: How to Cheat with Math – The Russian Cards Problem
#8Does "the sum of my cards modulo 7 is [x]" work? It should let Bob know what the missing card is but I can't tell if it conveys sufficiently little information to Eve for it to count.
import itertools import functools
for eve_card in range(7): cards_left = set(range(7)) cards_left.remove(eve_card)
mod_to_cards = [[], [], [], [], [], [], []]
for c in itertools.combinations(cards_left, 3):
mod = sum(c) % 7
mod_to_cards[mod].append(set(c))
for combs in mod_to_cards:
i = functools.reduce(lambda x, y: x.intersection(y), combs)
if len(i) != 0:
print("intersection", eve_card, combs, i)
u = functools.reduce(lambda x, y: x.union(y), combs)
if len(u) != 6:
print("union", eve_card, combs, u)