# 抓石子

A、B从一个石子堆里抓石子,交替进行,一个人可以抓1或者2颗,A先走,几种可能性。

// 和爬楼梯类似 f(n) = f(n-1) + f(n-2)
function getClimbingWays(n) {
    if (n < 1) return 0
    if (n === 1) return 1
    if (n === 2) return 2
    let a = 1, b = 2, temp = 0
    for (let i = 3; i <= n; i++) {
        temp = a + b
        a = b
        b = temp
    }
    return temp
}

最后抓的算负,16颗的情况下,A、B有必胜可能么(谁先抓,怎么抓,谁必胜)。

巴什博奕(Bash Game):

只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜

结论:若n%(m+1)=0,则先手必败,否则先手必胜

显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。 引入一个概念,奇异局势。当面对这个局势时则会失败。

奇异局势的判定:

一般的奇异局势是n=(m+1)*i,其中i为自然数,即n%(m+1)=0,面对这种情况无论我怎么取,对方总可以将其恢复为n%(m+1)=0,一直到n=(m+1)局势。

玩家的策略:

就是把当前面对的非奇异局势变为奇异局势留给对方。如果当前的石子个数为(m+1)*i+s,那么就将s个石子取走,使其达到奇异局势。

回到原题如果最后抓的算负

结论,若n%(m+1)=1,则先手必败。即n%3==1,则先手必败

我剩1个必输

如果有4个,无论我怎么取对方都可以让我剩1个

如果有7个,无论我怎么取对方都可以让我剩4个

如果16个的话,先手必败

# 红墨水蓝墨水

一瓶红墨水50克,一瓶蓝墨水50克,从红墨水中取一克红墨水放入蓝墨水中,然后又从蓝墨水瓶中取出一克混合墨水送还到红墨水瓶中,请问现在是红墨水瓶的蓝墨水多还是蓝墨水瓶中的红墨水多?一样多

第一次取,此时蓝墨水瓶中的混合墨水的比例为50:1,即混合墨水的应为1/51的红墨水和50/51的蓝墨水。

1克混合墨水的应为1/51克的红墨水加50/51克的蓝墨水。

第二次取:

红墨水瓶中的蓝墨水 50/51
蓝墨水瓶中的红墨水 1 - 1/51 = 50/51

# 称重

12个球里面有一个质量不均匀,给一个天平,如果用最少比较次数找出不均匀的球。

答案:三次

# 倒水

如何用一个3升,一个5升的水杯,倒出一杯4升的水

1. 3L装满倒入5L
2. 3L继续装满倒入5L,3L里还剩1L
3. 5L水全倒出,1L倒入5L杯
4. 3L水装满倒入5L杯子
最后更新时间: 9/3/2021, 7:07:07 PM