二人拿卡片的问题

1. 有10张卡片,你和我轮流拿卡片,每次可以拿1张或者2张。那么,怎么保证你能拿到最后一张?

控制每轮拿的卡片总数都是1+2。若有N张卡片且A和B每次可拿的张数和为M,若N%M != 0,则A只要保证先拿走N%M张,然后确保每轮拿走的卡片总数为M,就能保证最后拿到的是自己。

所以我先拿一张,然后另一人拿1张时我拿2张,拿2张时我拿1张。


2. 54张卡片,甲乙轮流拿,每人每次只能拿1~4张,谁拿到最后一张谁输,先拿的人要怎样做才能获胜

确保每次均匀减少的卡片数是5,但是这次是保证自己最后不拿到。

从后往前倒:

当剩余6张牌且对方先拿牌时,可以保证最后一张让对方获得。

所以要保证先拿完48张。每轮减少5张那么最开始要保证自己先拿走48%5=3张。


剩最后一张让对方拿时,牌数可以写成5M+1的形式,及每轮5张牌,最后一轮留给对手。5M+1<=54则M取10。那么自己要先取54-(5M+1)=54-51=3张。

就第一题而言,剩最后一张自己拿时,牌数可写成3M的 形式,每轮3张牌,最后一轮归自己。3k<=10则M取3。那么自己要先取10-3*3=1张。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值