网上有关“取石子游戏”话题很是火热,小编也是针对取石子游戏寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。
分类: 教育/科学 >> 学习帮助
问题描述:
(取石子游戏) 现有 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
评论列表(3条)
我是千泰号的签约作者“香蝶”
本文概览:网上有关“取石子游戏”话题很是火热,小编也是针对取石子游戏寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。分类: 教育/科学 >...
文章不错《取石子游戏》内容很有帮助