回 帖 发 新 帖 刷新版面

主题:QB45,此题怎么做呀!

Matrix67和Shadow正在做一个小游戏。
  桌子上放着两堆糖果,Matrix67和Shadow轮流对这些糖果进行操作。
    在每一次操作中,操作者需要吃掉其中一堆糖果,
    并且把另一堆糖果分成两堆(可以不相等)留给对方操作。
    游戏如此进行下去,糖果数会越来越少,最后必将出现这样一种情况:
    某人吃掉一堆糖果后发现另一堆里只剩一块糖果不能再分了。
    游戏规定此时该操作者吃掉最后这一块糖果从而取胜。
  这个游戏是不公平的。对于任意一种初始状态,总有一方有必胜策略。
    所谓有必胜策略是指,无论对方如何操作,自己总有办法取胜。
  Matrix67和Shadow将进行10次游戏,每一次游戏中总是Matrix67先进行操作。
    Matrix67想知道每一次游戏中谁有必胜策略。
    输入数据: 输入数据一共10行,每行有两个用空格隔开的正整数,
              表示一次游戏开始时桌子上两堆糖果分别有多少个。
    输出数据: 输出十行字符串。这些字符串只能是“Matrix67”或“Shadow”,
              它们表示对应的十行输入数据中有必胜策略的一方。
    请注意大小写。
    如:输入: 1 1  
        输出: Matrix67

回复列表 (共13个回复)

沙发

猴子吃桃问题!

板凳


不是猴子吃桃的问题,猴子吃桃是倒推,这不一样。

3 楼

原理基本差不多嘛!

4 楼

汗 题目没看清!!!!!!!!!!!!!!!

5 楼

奇数个糖Matrix67 第一次拿奇数以后配合Shadow使Shadow一直拿偶数,
最后第二次拿完使Shadow拿时还剩2个,Matrix67就赢
按奇偶分

6 楼

M,S 两人, 一百亿块糖
M先操作: 吃完........

呵呵,没想清楚,
再看看楼上的提示,呵呵,没那么简单.
奇偶数是不行的.

这样子,我们先来分析一下,
能分出什么数,           (分出来后是必赢的)
有什么数是不能分出来的, (分出来后是必输的)

可分出来的数[color=ff00ff]X组[/color]  不能分出来的数[color=ff00ff]Y组[/color]   原因
                        1          (A.必输无疑,对方把另一堆吃完了,再把这一颗吃了就赢了)
     2                             (B.如果对方吃另一堆,剩下两颗,无论他怎样分自己都能赢)
     3                             (同方法B.)
                        4          (C.对方吃完另一堆,分与两堆2,得结果B)
                        5          (D.同C,B)
                        6          (同D)
     7                             (E.这个数,不能由X组的数组成和,否则会有Y组数出现)
     8                             (同E)
                        9          (同E)

得出的原理是什么?  ........

7 楼

function W(A,B)
   W=1-(((A mod 5)and(B mod 5))>1)
end function

8 楼

def fnW(A,B)=1-(((A mod 5)and(B mod 5))>1)

9 楼

moz 分析的和我分析的几乎一样 对于你剩下的糖来说 如果尾数为 2 ,3, 7, 8四者之一 则你必然输,想赢的唯一办法是把剩下的数分成2个都是必然输的数
能赢的数    必输的数
       2
       3
   4
   5
   6
       7
       8
   9
   10
   11
       12
       13
[size=3][b]    .
    .
    .[/b][/size]
所以5个数一组可赢的和必输的规律出现
input a,b
IF (a - 2) MOD 5 < 2 AND (b - 2) MOD 5 < 2 THEN PRINT "Shadow" ELSE PRINT "Matrix67"
end

10 楼

1,1

我来回复

您尚未登录,请登录后再回复。点此登录或注册