跳转到主要内容

蒙眼分硬币

桌上有一堆硬币,其中一些正面朝上、一些反面朝上。你被蒙住眼睛,看不见,但能手摸并挪动硬币。

现在有人告诉你:当前一共有 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,单靠一次「分堆 + 整堆翻转」无法保证两堆正面数相同(初始正面枚数未知)。