二进制在博弈中的应用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
& % $ % $ $
中没有大于 " 的数 # !" (+) ! $ !& , % & $ $ $
个 " 了, 而原先有 个
’ " , " , ! # 它们都是偶
个 " 的那些列都仍然保持原有的偶
!,
中 等 数 学
(即 ! " # $) , $ 枚棋子 !
#"
!表示乙弈第 " 步
从第 " 堆中取走 " 枚棋子 (即 ! " # " ) % 利用 ’ 这种表 示方法, 图 & 即局面 ! $ 弈过程表示如下: ’ & &
甲: & 乙: $
以后的 对
! !! # ! ! !& # ! ! ! " " $ $ " " " ! ! 甲: ’ 乙: ( 甲: * 乙: + ! ) ) ! ! ! ! ) , !! # ! !" # ! !! # ! !& # " " " " ) & ! ! ! 甲: 乙: 甲: 乙: ’ , ( , * , +, ! ! !! # "! ! !& # !! ! !" # !! ) % !& # ! ! ! ) ) 从中可以看出, 乙弈出第 $ 步留给甲的 & 局面是 ! ; 甲先是从第 ! 堆中取走 ! 枚棋 " 子 (作为对弈过程的第 ’ 步) 而留给乙的局面 " 是 ! ; 由此下去, 弈至第 + 步时乙留给甲最 " ! 后的局面是 ) % 按游戏规则面对这一局面, ) 甲已成为输家 % 若甲认为自己在弈第 ’ 步时 & 出了错, 要求重新面对局面 ! , 并弈第 ’ 步 " 及随后各步, 甲从第 & 堆中取走 ! 枚棋子 (作 & 为对弈过程的第 ’, 步) , 而留给乙局面 ! ; ! 由此继续弈至第 +, 步时, 乙仍然留给甲局面 ! 甲仍未摆脱失败的结局 % ) , )
"’
中 等 数 学
列” (表 ! " 是当 ! " # $%, ! & # &", ! $ # ’’, !’ !" # (, ! ) 至 !" 全为 * 时, 局面 !& !" 表示 ! )
表"
二进制位 !" !& !$ !’ !) !" # $% &" ’’ ( * * # " ! … &( &+ &) &’ &$ && &" &* " * " * * * " " " " " " * * " " " * " *
因而使原先的奇局变成了偶局 (在表 " 中, ", 我们改变 ! $ ’ "! "!" 的 $% 位、 $ & 位和 $! 位 的值而保留其 $$ 位和 $" 位的值得到 " "!!, 即将 ! $ 从十进制的 $" 变成十进制的 "$, 就 把表 " 中原先的奇局变成了偶局 # ) # 而上述 变化仅仅是把 ! " 、 …、 !$ 、 ! " 中的某一个大 于 ! 的数 ! # 改变成一个小于它的非负整数 来实现的, 所以我们证明了引理的前一部分 # 下面我们证明引理的后一部分 # 设变化 之前 ! " 、 …、 而 !$ 、 ! " 中大于 " 的数有 ’ 个, 变化后 ! " 、 …、 !$ 、 ! " 中大于 " 的数有 ( 个 # !" 由于上述将 !$ !" 从奇局转变成 偶局的过程
’ " $ % !( + ( *
乙: (
" )) ! 年第 " 期
!&
其中
甲: !
!" # $
!表示甲弈第 ! 步从Leabharlann Baidu " 堆中取走
乙: "
"
& 读者可能已看出, 面对局面 ! , 甲无论 " & 如何也逃不出失败的结局 % ! 是使甲 必败 " ’ 的局面 % 不仅如此, 乙最初弈出的局面 ! 也 $ 是使甲必败的局面 % 为此, 玩这游戏有经验的 人, 常常记住了许多这样的局面 (即一组数) 来取胜, 但大多限于棋子的堆 数 " - & 和每 堆的棋子数 (即 ! ! 、 !" 和 !& ) 不超过 ")% 当 棋子的堆数 " 和各堆的棋子数目 ! ! 、 …、 !" 、 是否仍存在一个类似 !" 为任何非负整数时, 最佳策略, 可从对弈一开始就置对手于必败 之地呢? 为解决这个问题, 我们借助于整数的二 !! 进制表示 % 首先把局面 !" !" 数都表示成二进制数, 并如表 ! 中的数字实 例所表示的那样, 将这 " 个二进制数的个位 与个位对齐排成一列, 同时, 也把这些二进制 数的其他二进制位相互对齐 % 从表 ! 中 的数 字 实例 可 以看 出, 局面 !! !" !" 成的矩阵, 其每一行原本是一个二进制数, 分 别等于 ! ! 、 !" 、 …、 ! " % 只是我们把这 " 个二 进制数的 ") 位、 "! 位、 " " 位、 …分开来看待, 并在表 ! 的上部用 ") 、 "! 、 "" 、 …自右至左把 这 " 个二进制 的每 一位都限定在由 它们 标示的那一列之内, 并把这些列分别称为 ") 列、 …, 或统 称为 “二 进制位 的 "! 列、 "" 列、 的二进制表示可以看成是由 ) 和 ! 构 中的 " 个非负整
$ !! " 年第 $ 期
",
所以这一变化至少在一个二进制位的列上将 原先的偶数 (包含 !) 个 " 变成了奇数个 ", 因 而使原先的偶局转变成了奇局 # !" 引理 $ : 设 !$ !" !" 中必存在某个大于 ! 的数 ! # , 从 ! # 中减 去某个不大于 ! # 的正数, 就能将该局面变为 偶局 # 如果 ! " 、 …、 !$ 、 ! " 这 " 个数在变化前 至少有两个大于 ", 则变化后同样 至少有两 个大于 " # !" 证明: !$ 是奇局, 则在 ! " 、 !$ 、 …、
要的引理 ! !" 引理 ": 设 !& !" 是偶局, 则从 ! " 、 !& 、 …、
在表 " 的底部标出了每个二进制位的列 上所含 " 的数目 ! 下面将看到, 这些数目的奇 !" 偶性将起到决定局 面 !& !" 败的重要作用 ! 按这些数目的奇偶性, 我们给 出如下定义 ! 定义: 设 !" 、 …、 !& 、 !" 是 " 个 非负 整 !" 数, 在局面 !& !" 如果每个二进制位的列上恰有偶数 (包含 *) !" 个 " ! 则称 !& !" 前面由乙弈出的致甲于必败的局面有: ) ’ $ & & & " " ," ,* ," " 为偶局, 否则称为奇局 ! 的二进制表示中 (参看表 " ) , 能否置 对手于必
!! !! ! ! ! ! 第 ( 堆: !( & ) 图( !! !! 第 ) 堆: !) & *
来表示对弈过程中的各个 局面 (注 意:
中各数的排列顺序仍 表示同一局
第 $ 堆: !$ & ’
面对图 ( 的局面, “乙” 从第 ( 堆中取走 ( 枚棋 子 (作 为 对弈 过程 的第 ( 步) , 留给 “甲” 图 ) 所示的局面 %
% &
!" 中至少有一个二进制位的 列上有奇数个 "# 不妨设在 $ 列、 $ 列、 $ 列、 …上 有奇数个 而这些列的最高位是 $(参看表 ", 其中的 ", 数字例子中, $% 列、 $& 列和 $! 列上有奇数个 这三列的最高位是 $ ) ", # 我们在 $ 列上指定一个 " , 这个指定的 " 所在的行所表示的二进制数就是引理中所 指的数 ! (在表 " 中, $ 列上的 " 只有 " 个, # 就不存在指定谁的问题, 这个 " 在第 $ 行, 相 应于这一行的二进制数是 ! $ ’ "! "!") # 现在只需变 更二进制数 ! # 在 $ $ 位、 $% 位、 $ & 位、 …的值 (如果在其中的一位上原先 的值为 " 就减去这个 " 变 为 ! , 如 果在这一 位上原先的值为 ! 就添加一个 " 变为 " ) 而 保留 ! # 在其他二进制位上的值不变, 这样就 能把原先有奇 个 " 的那些列 ( $ $ 列、 $ % 列、 $ 列、 …) 都变成具有偶 偶
甲: $
第 $ 堆: !$ & ’
第 ( 堆: !( & " 图$
按规则# , 双方都企图给对方留下最后 的一枚棋子而使自己获胜 % 他们如何走出自 己的每一步请看下面的对弈过程 % 面对图 $ 的初始局面, 先弈者 “甲” 从第 (作为对弈过程的第 $ ( 堆中取走 * 枚棋子 步) , 留给后弈者 “乙” 图 ( 所示的局面 %
既然是奇局, 其二进制 表示 中仅仅减小了 ! " 、 …、 因 !$ 、 ! " 中的一个数, 此, 最多只能将变化前 ! " 、 …、 !$ 、 !" 中大于 " 的数减少 " 个, 故有 ’ ( "! ( ! ’ # 当 ’ ) $ 时, 显 然有 ( " $ ; 而当 ’ ’ $ 时, 只能由上述不等式得到 ( " "# 但是变化 后的局面是偶局, 而偶局不可能仅有一个数 大于 " (从表 " 即可看出, 仅有一个大于 " 的 局面必定是奇局) , 所以 ( ) "# 于是, 我们证明了当 ’ "$ 时必有 ( " $# 现在我们回到前面, 把乙给出的使甲陷 于必败的局面归纳为两种情况: !" ( *) ! $ !& " ’ " # 这是奇局且 ! " 、 !$ 、 !& "
$(
中 等 数 学
专题写作
二进制在博弈中的应用
曾立県
(四川省成都市第十二中学, !"##!$)
有这么一个游戏: 对弈双方 (简记为 “甲” 和 “乙” ) 面对若干堆棋子, 其中每一堆的棋子 数目可以任意确定 % 譬如, 如图 $ 所示游戏的 初始局面: 第 $ 堆的棋子数目 ! $ & ’, 第(堆 的棋子数目 ! ( & ", 第 ) 堆的棋子数目 ! ) & *, 其余各堆的棋子 数目 ! * , !’ , …, !" 都为 (即减去) 由 # % 对弈双方轮流按下列规则取走 他自己选定的某 一堆的部分棋 子或全部 棋 子, 作为他弈出的 “一步” % 该游戏规则如下: (即减去) 至少一枚 棋 !每一步应取 走 子; (即减去) 部 " 每一步只能从一堆中取走 分棋子或全部棋子; 谁 # 轮到谁取走最后留下的一枚棋子, 就是输家 %
!" 中任何不为 * 的一个数减去 不大于该数 的任何一个正数, 都将使该局面转变为奇局 ! !" 证明: 既然 !& !" 的每个二进制位的列上都恰有偶数 (包含 *) 个 " ! 设 !# 是 !" 、 …、 !& 、 ! " 中的任何一个不 为 * 的数, 无论从 ! # 减去怎样一个不大于 ! # 的正数, 都将使 “ ! # 的二进制表示” 至少在一 个二进制位 上发生 变化— — —或者由 * 变 为 或者由 " 变为 *! 另一方面, “ ! # 的二进制 ", !" 表示” 是 !& !" 只有 “ ! # 的二进制表示” 这一行发生了变化, 的二进制表示中的一行, 由于 是偶局, 其二进制 表示
!! !! ! !!! !!! ! !! !! 第 ) 堆: !$ & *
!! !! ! ! 第 ( 堆: !( & $ 图)
!! !! 第 ) 堆: !) & *
第 $ 堆: !$ & ’
图 $ 至图 ) 所表示的局面只由 ) 个整数 !$ 故可用记号 ! ( 来表示 !$ 、 ! ( 和 ! ) 决定, !) ’ 这些 局 面, 即 用 " 表 示 图 $ 的 局 面, 用 * ’ ’ ) 表示图 ( 的局 面, 用 $ 表示图 ) 的 局 * * 面 % 一般地说, 如果初始局面有 " 堆棋子, 就 用 " 个非负整数 ! $ 、 、 …、 分别表示第 !( !" $ 堆、 第 ( 堆、 …、 第 " 堆 的棋子数, 而用 记号 !$ !( !" !$ 改变 !( !" 面) % 利用上述记号, 从图 $ 至图 ) 的对弈过 程可以简单地表示为: ’ " * ’ " ) !( + * *
它们的二进制表示分别为: " * " * * * " * ) ’ " " 是奇局 ! " !" 关于局面 !& !" 奇偶性的变化, 有以下重 " " " * $ & " " & & * * " " " , * " ,* * ,"
的二进制
按上 述 定 义, " 、 " 、 * 是 偶 局, 惟有
*
(注: 所有空白处都为 * ! ) 每 个 二进 制 位 的列 上 " 的数目 … * * & " " ’ & $
相关文档
最新文档