取石子游戏

网上有关“取石子游戏”话题很是火热,小编也是针对取石子游戏寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

分类: 教育/科学 >> 学习帮助

问题描述:

(取石子游戏) 现有 5 堆石子,石子数依次为 3,5,7,19,50,甲乙两人轮流从任一堆中任取(每次只能取自一堆,不能不取), 取最后一颗石子的一方获胜。甲先取,问甲有没有获胜策略(即无论 乙怎样取,甲只要不失误,都能获胜)?

解析:

这是数论中的最优策略问题,没有平均数原理。

我好好想想再给你答案。

要上班了,下班继续思考……(时间不多,才回复,见谅)

1. 从50中取走32粒剩余18粒是正确的。

2. 算法:从其中一堆中取n个,使得剩余的所有数目正好是“必负局(此时先取必输的局面)”。

3. 所谓“必负局”是指把剩余的每一堆的数目都转化成二进制的数,然后把它们相加,规定做不进位的加法(也就是异或运算),即0+0=0,1+0=0,0+1=1,1+1=0(不进位),如果所得和是0(多个0),那么此种局势称为“必负局”。

4. “必负局”原理:一个“必负局”,一次改动任何一个数,都将不再是“必负局”,同时,任何一个“非必负局”,通过正确地减少某个数,一定能变成“必负局”,并且这种操作是唯一的。设想现在是“必负局”,假如你先取,势必把其中的某个数的1改成了0,0改成了1,一定不再是“必负局”了,而我一定可以在把它变会“必负局”。其实这样的局势,相当于偶数,你取了,必定有对应我取的,所以我一定拿到最后一个。简单的想,考虑只有两堆,那么如果原来不相等,那就是“非必负局”,先取者有必胜方式,只要取多的一堆使得两堆相等,之后你取几个,我就从另一堆取几个。

5. 应用:(也许格式会改变)

19 010011

7 000111

5 000101

3 000011

010010 (18)10

也就是,还要18才能变成“必负局”,所以50-18=32

所以第1次只能在第5堆石子中取32粒,使得取出32粒后为“必负局”,即异或运算结果为0。

将十六进制转换成二进制后,如果前面的数是两个0,则可以省略一个,我想问的是为什么不能省略两个,

给出公式,自己算吧.

---------------------------------------------------------------

十进制 二进制

0 ?0

1 ?1

2 ?10

3 ?11

4 ?100

5 ?101

6 ?110

7 ?111

8 ?1000

9 ?1001

10 1010

11 1011

12 1100

13 1101

14 1110

15 1111

-------------------------------------------------------------------------

十进制 二进制 ?

2~0=1 1 ?

2~1=2 10 ?

2~2=4 100 ?

2~3=8 1000 ?

2~4=16 ?10000 ?

2~5=32 ?100000 ?

2~6=64 ?1000000 ?

2~7=128 10000000 ?

那么?255?就是? 11111111 8个1

-----------------------------------------------------------------------------------

十进制 二进制 略写

0.0.0.0 00000000.00000000.00000000.00000000 /0

128.0.0.0 10000000.00000000.00000000.00000000 /1

192.0.0.0 11000000.00000000.00000000.00000000 /2

224.0.0.0 11100000.00000000.00000000.00000000 /3

240.0.0.0 11110000.00000000.00000000.00000000 /4

248.0.0.0 11111000.00000000.00000000.00000000 /5

252.0.0.0 11111100.00000000.00000000.00000000 /6

254.0.0.0 11111110.00000000.00000000.00000000 /7

255.0.0.0 11111111.00000000.00000000.00000000 /8

255.128.0.0 11111111.10000000.00000000.00000000 /9

255.192.0.0 11111111.11000000.00000000.00000000 /10

255.224.0.0 11111111.11100000.00000000.00000000 /11

255.240.0.0 11111111.11110000.00000000.00000000 /12

255.248.0.0 11111111.11111000.00000000.00000000 /13

255.252.0.0 11111111.11111100.00000000.00000000 /14

255.254.0.0 11111111.11111110.00000000.00000000 /15

255.255.0.0 11111111.11111111.00000000.00000000 /16

255.255.128.0 11111111.11111111.10000000.00000000 /17

255.255.192.0 11111111.11111111.11000000.00000000 /18

255.255.224.0 11111111.11111111.11100000.00000000 /19

255.255.240.0 11111111.11111111.11110000.00000000 /20

255.255.248.0 11111111.11111111.11111000.00000000 /21

255.255.252.0 11111111.11111111.11111100.00000000 /22

255.255.254.0 11111111.11111111.11111110.00000000 /23

255.255.255.0 11111111.11111111.11111111.00000000 /24

255.255.255.128 11111111.11111111.11111111.10000000 /25

255.255.255.192 11111111.11111111.11111111.11000000 /26

255.255.255.224 11111111.11111111.11111111.11100000 /27

255.255.255.240 11111111.11111111.11111111.11110000 /28

255.255.255.248 11111111.11111111.11111111.11111000 /29

255.255.255.252 11111111.11111111.11111111.11111100 /30

255.255.255.254 11111111.11111111.11111111.11111110 /31

255.255.255.255 11111111.11111111.11111111.11111111 /32

---------------------------------------------------------------------------------------------------

  十进制 二进制 说明

? 128 1?0000000 二进制的1表示要匹配,即第一位二进制必须一样

0--255 0? 0000000---1?11111111 划分

序号?

1 ? 0--127 0? 0000000---0?1111111 分成两段,每段128个地址,头尾去掉,主机地址数126

2 ? 128--255 1?0000000---1?1111111

192 11? 000000 二进制的1表示要匹配,即前两位二进制必须一样

0--255 00? 000000---11?111111 划分

 

1 0--63 00? 000000---00?111111 分成四段,每段64个地址,头尾去掉,主机地址数62

2 64--127 01? 000000---01?111111

3 128--191 10? 000000---10?111111

4 192--255 11? 000000---11?111111

序号 224 111? 00000 二进制的1表示要匹配,即前三位二进制必须一样

0--255 000? 00000---111?11111 划分

 

1 0--31 000? 00000---000?11111 分成八段,每段32个地址,头尾去掉,主机地址数30

2 32--63 001? 00000---001?11111

3 64--95 010? 00000---010?11111

4 96--127 011? 00000---011?11111

5 128--159 100? 00000---100?11111

6 160--191 101? 00000---101?11111

7 192--223 110? 00000---110?11111

8 224--255 111? 00000---111?11111

序号 240 1111? 0000 二进制的1表示要匹配,即前四位二进制必须一样

0--255 0000? 0000---1111?1111 划分

 

1 0--15 0000? 0000---0000?1111 分成十六段,每段16个地址,头尾去掉,主机地址数14

2 16--31 0001? 0000---0001?1111

3 32--47 0010? 0000---0010?1111

4 48--63 0011? 0000---0011?1111

5 64--79 0100? 0000---0100?1111

6 80--95 0101? 0000---0101?1111

7 96--111 0110? 0000---0110?1111

8 112--127 0111? 0000---0111?1111

9 128--143 1000? 0000---1000?1111

10 144--159 1001? 0000---1001?1111

11 160--175 1010? 0000---1010?1111

12 176--191 1011? 0000---1011?1111

13 192--207 1100? 0000---1100?1111

14 208--223 1101? 0000---1101?1111

15 224--239 1110? 0000---1110?1111

16 240--255 1111? 0000---1111?1111

序号 248 11111? 000 二进制的1表示要匹配,即前五位二进制必须一样

0--255 00000? 000---00000?000 划分

  分成三十二段,每段8个地址,头尾去掉,主机地址数6

1 0---7 00000? 000---00000?111

2 8---15 00001? 000---00001?111

3 16---23 00010? 000---00010?111

4 24---31 00011? 000---00011?111

5 32---39 00100? 000---00100?111

6 40---47 00101? 000---00101?111

7 48---55 00110? 000---00110?111

8 56---63 00111? 000---00111?111

9 64---71 01000?000---01000?111

10 72---79 01001? 000---01001?111

11 80---87 01010? 000---01010?111

12 88---95 01011? 000---01011?111

13 96---103 01100? 000---01100?111

14 104---111 01101? 000---01101?111

15 112---119 01110? 000---01110?111

16 120---127 01111? 000---01111?111

17 128---135 10000? 000---10000?111

18 136---143 10001? 000---10001?111

19 144---151 10010? 000---10010?111

20 152---159 10011? 000---10011?111

21 160---167 10100? 000---10100?111

22 168---175 10101? 000---10101?111

23 176---183 10110? 000---10110?111

24 184---191 10111? 000---10111?111

25 192---199 11000? 000---11000?111

26 200---207 11001? 000---11001?111

27 208---215 11010? 000---11010?111

28 216---223 11011? 000---11011?111

29 224---231 11100? 000---11100?111

30 232---239 11101? 000---11101?111

31 240---247 11110? 000---11110?111

32 248---255 11111? 000---11111?111

序号 252 111111? 00 二进制的1表示要匹配,即前六位二进制必须一样

0---255 000000? 00---111111?11 划分

  分成六十四段,每段4个地址,头尾去掉,主机地址数2

1 0---3 000000? 00---000000?11

2 4---7 000001? 00---000001?11

3 8---11 000010? 00---000010?11

4 12---15 000011? 00---000011?11

5 16---19 000100? 00---000100?11

6 20---23 000101? 00---000101?11

7 24---27 000110? 00---000110?11

8 28---31 000111? 00---000111?11

9 32---35 001000? 00---001000?11

10 36---39 001001? 00---001001?11

11 40---43 001010? 00---001010?11

12 44---47 001011? 00---001011?11

13 48---51 001100?00---001100?11

14 52---55 001101? 00---001101?11

15 56---59 001110? 00---001110?11

16 60---63 001111? 00---001111?11

17 64---67 010000? 00---010000?11

18 68---71 010001? 00---010001?11

19 72---75 010010? 00---010010?11

20 76---79 010011? 00---010011?11

21 80---83 010100? 00---010100?11

22 84---87 010101? 00---010101?11

23 88---91 010110? 00---010110?11

24 92---95 010111? 00---010111?11

25 96---99 011000? 00---011000?11

26 100---103 011001? 00---011001?11

27 104---107 011010? 00---011010?11

28 108---111 011011? 00---011011?11

29 112---115 011100? 00---011100?11

30 116---119 011101? 00---011101?11

31 120---123 011110? 00---011110?11

32 124---127 011111? 00---011111?11

33 128---131 100000? 00---100000?11

34 132---135 100001? 00---100001?11

35 136---139 100010? 00---100010?11

36 140---143 100011? 00---100011?11

37 144---147 100100? 00---100100?11

38 148---151 100101? 00---100101?11

39 152---155 100110? 00---100110?11

40 156---159 100111? 00---100111?11

41 160---163 101000? 00---101000?11

42 164---167 101001? 00---101001?11

43 168---171 101010? 00---101010?11

44 172---175 101011? 00---101011?11

45 176---179 101100? 00---101100?11

46 180---183 101101? 00---101101?11

47 184---187 101110? 00---101110?11

48 188---191 101111? 00---101111?11

49 192---195 110000? 00---110000?11

50 196---199 110001? 00---110001?11

51 200---203 110010? 00---110010?11

52 204---207 110011? 00---110011?11

53 208---211 110100? 00---110100?11

54 212---215 110101? 00---110101?11

55 216---219 110110? 00---110110?11

56 220---223 110111? 00---110111?11

57 224---227 111000? 00---111000?11

58 228---231 111001? 00---111001?11

59 232---235 111010? 00---111010?11

60 236---239 111011? 00---111011?11

61 240---243 111100? 00---111100?11

62 244---247 111101? 00---111101?11

63 248---251 111110? 00---111110?11

64 252---255 111111? 00---111111?11

-----------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------

256-子网掩码=地址数

256/地址数=网段数 ? -> 256/网段数=地址数

地址数-2=主机地址数

取石子游戏怎么定胜?

你说的情况是哪种应用场合或者哪本书上的说法?

我觉得你说的情况只有在通信中有意义,而且,这个说法是 “可以省略” 而不是“必须省略”

我觉得是这样,通信系统中传输比特流,就相当于传输高低电平,传输的双方需要一个“起始约定”,例如,按常规正逻辑都是低电平作为起始,所以总是先传输一个 0

当转换的二进制比特流开头是多个0时,那么,可以只传输一个0,因为只要能达到同步的目的就行了。

另外,“那假如是八进制的12,那就变成二进制的00010010,那根据概念就要变成0010010,”

这一句有误,八进制 12,二进制是 001 010,可以省略(而不是必须省略,只要通信双方约定第一个非0是有效数据开始)为 01 010

作为接收端, 无论 起始为 001 010 还是 01 010,都理解成 01 010

只有一堆时,无论有多少,先取者都可以一次性全部取走,所以必胜。

(1,1)时,显然先取者必败。

(1,2)时,先取者必胜,他可以在2那一堆中取1个,于是变成(1,1),但这成为上一种情况了,于是接下来取的人必败,亦即先取者必胜。

(1,3)时,先取者必胜。他可以在3那一堆中取2个,于是变成(1,1)。

(2,2)时,先取者必败。他在任何一堆中取1个,对方随即在另一堆中取1个,即变成(1,1);如果他取走一堆中的全部石子,对方即取走另一堆中的全部石子。

(2,3)时,先取者必胜。他可以在3那一堆中取1个,于是变成(2,2)。

(3,3)时,先取者必败。他取走任一堆中的1,2或3个,就变成了以上讨论过的情形。

(1,1,1)时,先取者必胜。他取走任一堆,就变成了(1,1)。

(1,1,2)时,先取者必胜。他取走2那一堆,就变成了(1,1)。

(1,1,3)时,先取者必胜。他取走3那一堆,就变成了(1,1)。

(1,2,2)时,先取者必胜。他取走1那一堆,就变成了(2,2)。

(1,2,3)时,先取者必败。分析如下:

他先取1那一堆,则变为(2,3),由上面的分析,对手必胜。

他从2那一堆中取1个,就变成了(1,1,3),对手可以将3那一堆全部取走,变成了(1,1),于是必胜。

他将2那一堆全部取走,就变成了(1,3),对手必胜。

他从3那一堆中取1个,就变成了(1,2,2),对手必胜。

他从3那一堆中取2个,就变成了(1,2,1),对手必胜。

他将3那一堆全部取走,就变成了(1,2),对手必胜。

这些胜负有什么规律呢?我们可以将每堆的数转换成二进制,然后看每一位上所有堆里的1的个数总和:

必胜情况:(n) (1,2)(1,3)(2,3) (1,1,1)(1,1,2)(1,2,2)

必败情况: (1,1)(2,2)(3,3) (1,2,3)

化为二进制:

必胜情况:

(n)<只有1堆>:……(反正每位只要有1肯定只有1个)

(1,2):1,10

列成竖式:

01

10

个位上只有1个1,“十位”(因为是二进制所以叫十位不妥,这里为了方便说明暂且使用,下同)上也只有1个1。

(1,3):1,11

列成竖式:

01

11

个位上有2个1(1的1个,3的1个),十位上有1个1。

(2,3):10,11

个位上有1个1,十位上有2个1。

(1,1,1):1,1,1

个位上有3个1。

(1,1,2):1,1,10

个位上有2个1,十位上有1个1。

(1,1,3):1,1,11

个位上有3个1,十位上有1个1。

(1,2,2):1,10,10

个位上有1个1,十位上有2个1。

必败情况:

(1,1):1,1

个位上有2个1。

(2,2):10,10

十位上有2个1。

(3,3):11,11

个位上有2个1,十位上也有2个1。

(1,2,3):1,10,11

个位上有2个1,十位上也有2个1。

下面分析一下这些情况。

先看必败情形。容易发现,所有的必败情形,都是所有的数位上都有偶数个1。

下看必胜情形。我们发现,出现了两种情况:

1.只有1位上有奇数个1,如(1,3)(2,3)(1,1,1)(1,1,2)(1,2,2)。而先取者取走该位上的1,所有的位上就都变成了偶数个1,而这时后取者变成了先取者。

2.有若干位上都是奇数个1,如(n)(1,2)(1,1,3)。先取者取(不一定取走哪位)后,所有的位上也都变成了偶数个1。后取者变成了先取者。

以上两种情况,都是将后取者逼至必败情况从而取胜。

由以上分析我们可以得到结论:将所有的堆的石子数化为二进制后,如果所有数位上的1的个数都是偶数,那么先取者必败;如果有些位上的1的个数是奇数,先取者能够将所有数位上的1的个数都变为偶数的话,那么先取者必胜。

好,下面来分析我们的题目。

3,5,7,19,50化为二进制是:

000011

000101

000111

010011

110010

可见,只有最高位的1是奇数个,其他位上都是偶数个。

所以只需要将最高位的1取走即可必胜。

二进制的100000就是10进制的32,所以要将50个石子的那堆取32个,取掉就变成偶数个数目。于是先取者必胜。以后无论对方怎么取,始终保证每一位上的1的个数是偶数即可(一种简单的方法是,他在一堆中取几个,你在另一堆中也取几个就可以)。

关于“取石子游戏”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[香蝶]投稿,不代表千泰号立场,如若转载,请注明出处:https://m1.hr8848.cn/zhishi/202508-21301.html

(10)
香蝶的头像香蝶签约作者

文章推荐

发表回复

作者才能评论

评论列表(3条)

  • 香蝶的头像
    香蝶 2025年08月18日

    我是千泰号的签约作者“香蝶”

  • 香蝶
    香蝶 2025年08月18日

    本文概览:网上有关“取石子游戏”话题很是火热,小编也是针对取石子游戏寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。分类: 教育/科学 >...

  • 香蝶
    用户081806 2025年08月18日

    文章不错《取石子游戏》内容很有帮助