翻硬币问题


转自:http://www.guokr.com/post/643485/

我们来解决一下更本质的问题——

【有 n 个硬币,一开始全部正面朝上,每次可以翻转 k 个硬币( k 小于 n ),那么至少要 p 次翻转,才能让所有硬币反面朝上,求 p 的值】


解:

本题的精髓在于对奇偶性的讨论。

——情况1:若 n 为奇数——

1.1 若 k 为偶数 => 无解

证明

若要让所有硬币最终翻面,则每个硬币都要翻面奇数次,共有奇数个硬币,所以所有硬币的翻面总数为奇数,但每次只能翻面偶数个硬币,显然不可能。证毕!

1.2 若 k 为奇数 => p为不小于 n/k 的最小奇数

(例1:n=7,k=5,那么 n/k =1.4 则 p=3 )
(例2:n=25,k=7,那么 n/k= 25/7 则 p=5)

证明

必要性
若要让所有硬币最终翻面,则每个硬币都要翻面奇数次,共有奇数个硬币,所以所有硬币的翻面总数为奇数,而每次只能翻奇数个硬币,所以总的翻转次数必然是奇数次,而翻转次数不到 n/k 次时,并不能使所有硬币至少翻面1次,所以p至少是不小于 n/k 的最小奇数

充分性:

  • 当  时,只要3次翻转即可

给硬币编号为1-n,
第1次翻转编号:1~n-2
第2次翻转编号:1~n-3、n-1
第3次翻转编号:1~n-3、n
Done!(前 n-3 个硬币翻面 3 次,后 3 个翻面 1 次)


  • 时,依然只要3次翻转

只要让前面的个硬币翻转 3 次,后面的个硬币翻转 1 次即可。这是显然可以做到的。


  • 时,需要p次翻转(p为不小于 n/k 的最小奇数)

根据定义,,,由于,所以 这意味者翻转 p 次后,平均来说,每个硬币翻面次数小于3次。只要让前面的个硬币翻转 3 次,后面的个硬币翻转 1 次即可。

——情况2:若 n 为偶数——

2.1 若 k=n-1 => p=n

证明:

必要性:
若要让所有硬币最终翻面,则每个硬币都要翻面奇数次,它们要么相同,要么相差2的倍数。那么反向思考这个问题,由于每次必须翻 n-1 个硬币,则只有1个硬币不翻面。

  • 如果最终所有硬币翻面次数相同,那么至少每一个硬币都要“不翻面” 1 次,所以至少 n 次;
  • 如果最终所有硬币翻面次数不全相同,那么至少有1个硬币要比其他的某个硬币多“不翻面” 2 次,但这意味着这多出来的2次“不翻面”,操作是完全相同的,这两次操作让所有硬币的状态完全没有变化,这显然只会让总操作次数更多,从而大于 n 次;


充分性:
第 x 次操作 (),让除了编号 x 的所有硬币翻面即可

2.2 若 k<n-1

2.2.1 若 k=n/2 => p=2
这是显然的。

2.2.2 若  且为偶数=> p=3

只要让前面的个硬币翻转 3 次,后面的个硬币翻转 1 次即可。
这个情况,和 n 为奇数是类似的。

2.2.3 若  且为奇数=> p=4

只要让前面的个硬币翻转 3 次,后面的个硬币翻转 1 次即可。
只操作3次是不行的,因为都不是整数。同样地,后面的讨论也要考虑是否是整数的问题。这也是分奇偶讨论的原因。

2.2.4 若且为偶数=> p为不小于 n/k 的最小整数

只要让前面的个硬币翻转 3 次,后面的个硬币翻转 1 次即可。

2.2.5 若且为奇数=> p为不小于 n/k 的最小偶数

只要让前面的个硬币翻转 3 次,后面的个硬币翻转 1 次即可。
(p为奇数时,并不为整数)

————————————

综上所述:

若 n 为奇数:

  • 若 k 为偶数  无解
  • 若 k 为奇数  p 为不小于 n/k 的最小奇数

若 n 为偶数:

  • 若 
  • 若 
  • 若 k为偶数,且
  • 若 k为奇数,且
  • 若 k为偶数,且 p 为不小于 n/k 的最小整数
  • 若 k为奇数,且 p 为不小于 n/k 的最小偶数

————————————

特别地,文章开头的问题,属于情况 2.1 ,是一个比较特殊的情况,答案是 6。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值