首页 > 代码库 > 算法:正面硬币

算法:正面硬币

题目描述:

有100枚硬币躺在桌子上, 每一枚都有正面和反面。其中10枚正面朝上,90枚反面朝上你不能摸、看或者其他方法来判断每一枚硬币哪面朝上。现在把硬币分成两堆,使得每一堆都有同样数量的正面向上的硬币。

 

思路(假设解题过程都是闭着眼睛):将硬币分成两堆,一堆10个,另一堆90个,然后将10的小堆全部翻面。

 

证明:

假设第一次分堆后:

小堆:有x个正面朝上,10-x个反面朝上,

大堆:有10-x个正面朝上,90-10+x=80+x个反面朝上。

小堆全部翻面:

小堆:有10-x个正面朝上,x个反面朝上,

大堆:有10-x个正面朝上,90-10+x=80+x个反面朝上。

算法:正面硬币