关于M-C问题,即是missionaries and cannibals问题。题目条件是N个传教士和N个野人(N=5)准备渡河。河岸边有一条船每次最多载K人(K=3)渡河;限制条件是河
的左右两岸或者船上的传教士人数均要大于或者等于野人数目(防止传教士被吃掉,所以人多打架力量大)。
初始有两种情况讨论:1.船在左岸;2.船在右岸;
待用条件:M(传教士人数),C(野人数);B=0(船在右岸),B=1(船在左岸)
1.船在左岸。因为船每次最多运送3人,所以按照最多运送的人数目进行。当船载3人(划船的1人,乘客2人)从左岸出发到右岸,送下2名乘客后,划船的人将船再次
驶向左岸接剩下的3人(5-2);所以实际上这一次只运送过去了2人。 此时船从左岸出发又回到左岸,为一个来回即是2次;
由此可得一个式子:((M+C-3)/2)*2+1;分析:M+C-3:出去最后一次之前,岸边剩下的3个人。(M+C-3)/2: "/2"的原因是每一个来回可以 运行2个人;"*2"是因为一个来回为2次渡河。“+1”是代表着最后一次渡河;
2船在右岸。
岸边