蒙眼分硬币
桌上有一堆硬币,其中一些正面朝上、一些反面朝上。你被蒙住眼睛,看不见,但能手摸并挪动硬币。
现在有人告诉你:当前一共有 k 枚正面朝上(0 ≤ k ≤ n,n 为硬币总数)。
你可以把硬币任意分成两堆(两堆枚数可以不同),然后任选其中一堆,将这一堆里的每一枚硬币都翻转一次(正面变反面、反面变正面)。另一堆不翻转。
问:如何操作,才能使分堆之后两堆中正面朝上的枚数相同?(若 n 为偶数,两堆正面数相同意味着全桌正面与反面数目也相等。)
任取 k 枚硬币单独成一堆,将这一堆全部翻转,另一堆保持不动。
为何成立?
设取出的 k 枚中有 x 枚正面。翻转后这一堆有 k − x 枚正面。
剩下 n − k 枚中原本就有 k − x 枚正面(因为全场共 k 枚正面),故另一堆正面数也是 k − x。
两堆正面数相等。
若 n 为偶数且两堆正面数都是 k − x,则全场正面共 2(k − x) 枚。要全桌正反各半,需 k = n/2;此时取 k = n/2 枚翻转后,每堆 n/4 枚正面,全桌 n/2 枚正面、n/2 枚反面,正反数目相同。
注意
若不知道 k,单靠一次「分堆 + 整堆翻转」无法保证两堆正面数相同(初始正面枚数未知)。