@neeldhara
Neeldhara 🐦|🐘
8 months
If you have not seen the "almost impossible chessboard puzzle", watch @3blue1brown and @standupmaths play it out in a very cool collaboration: I wanted recreate this for an audience, but I didn't have a partner, so here's a one-to-many version. 1/n
1
5
49

Replies

@neeldhara
Neeldhara 🐦|🐘
8 months
Tell your audience that you have a function f that takes a 16-bit sequence as input and produces a number between 0 and 15. Then have one of them suggest a string (or for more drama get 16 people to flip a coin), call this s. Have someone else pick a number x in [0,15]. 2/n
1
0
1
@neeldhara
Neeldhara 🐦|🐘
8 months
BTW: This function f is just a script that I can run from a terminal or a web server, and I even show them the source so that they can check that there's no randomness or rigging. Full transparency. Now claim, with more drama, that: f(s) "will turn out to be" x. 3/n
1
0
0
@neeldhara
Neeldhara 🐦|🐘
8 months
Of course this is a little silly: even if you are incredibly lucky and f(s) *does* turn out to be x, the audience can break your trick by challenging you to obtain f(s) = y for some y different from x. Once it's clear that the original claim was a bit too much, you say: 4/n
1
0
0
@neeldhara
Neeldhara 🐦|🐘
8 months
If you let me flip *one* of the bits in s (to obtain, say, s*), then I can make this work! In other words, with just ONE flip (of my choice), I can ensure that f(s*) = x, for any given s and x. Sanity check: there are 16 choices of x, and 16 choices of flips. So... 5/n
1
0
0
@neeldhara
Neeldhara 🐦|🐘
8 months
...this is not outright crazy, but still quite impressive if you can pull it off! And turns out that you always can --- that's the essence of the chessboard puzzle. If you want to perform this, here's how you can show f and compute the flip. 6/n
1
0
0
@neeldhara
Neeldhara 🐦|🐘
8 months
Here's a URL that codes the function f - When prompted, enter a 16-bit string, and you'll get a number between 0 and 15. If done right, you'll enter s* and the number that shows up will be x, the one demanded by the audience. 7/n
1
0
1
@neeldhara
Neeldhara 🐦|🐘
8 months
To compute s* from s, go here: Sorry for the terrible UI! The grid encodes a 16-bit string, set to all-zeroes by default. Read from left-to-right, top-to-bottom. Flip a bit by clicking on the square in question, e.g, if s = 1100101000001111, you get: 8/n
Tweet media one
1
0
0
@neeldhara
Neeldhara 🐦|🐘
8 months
Once you enter s, click on "Point To Square". Nothing happens immediately, but click on the square that represents x (e.g, if x = 8, that's the first column, third row; just count left-to-right, top-to-bottom, starting from the top-left square). This highlights the square. 9/n
Tweet media one
1
0
0
@neeldhara
Neeldhara 🐦|🐘
8 months
Now click on "Reveal Flip" to obtain the bit that should be flipped. Flip that bit and you're done! Indeed, if you key in 1100101000011111 to f, sure enough, you get 8! I realize this may not sound very impressive, but it does feel quite magical IRL :) Even more so if... 10/n
Tweet media one
1
0
0
@neeldhara
Neeldhara 🐦|🐘
8 months
...you can figure out the bit-to-be-flipped mentally. It's not terribly hard to do, once you know what f is doing. So here's f --- feel free to take a stab at the question of how you can compute the flip to achieve what you want! Meanwhile, you can perform this anyway :) /fin
Tweet media one
1
0
0
@neeldhara
Neeldhara 🐦|🐘
8 months
PS. In the video, there's a passing comment about how the demands of this setup are effectively the opposite of error-correction. Indeed, the spirit of error correction is to take a short string and expand it with redundancy, but here f takes a 16-bit sequence to a 4-bit one.
1
0
1
@neeldhara
Neeldhara 🐦|🐘
8 months
So this fits, *very* broadly speaking, into the theme of Miniature #5 , which was the last thing we discussed in the Linear Algebra reading group. Discussions and details here:
0
1
5