魔方吧·中文魔方俱乐部

 找回密码
 注册
搜索
热搜: 魔方
楼主: 狮子火柴

分珍珠 [复制链接]

Rank: 3Rank: 3

积分
831
帖子
110
精华
0
UID
429
性别
发表于 2005-3-8 09:00:53 |显示全部楼层
以下是引用hw294在2004-8-18 11:12:51的发言:

┌┬┬士将┬┬┬┐ ├┼炮┼士┼┼┤ ├┼┼┼炮┼┼┼┤ 卒┼┼┼┼┼┼┼┤ ├┴┴┴┴┴┴┴┤ ├┬┬┬┬┬┬┬┤ 兵┼┼┼┼┼┼┼┤ ├┼┼┼炮┼┼┼┤ ├┼炮┼仕┼┼┤ └┴┴仕帅┴┴┴┘

发一个Java 象棋看看
...缠缠绵绵...柴米油盐...缠缠绵绵...柴米油盐...

使用道具 举报

Rank: 8Rank: 8

积分
17508
帖子
16321
精华
9
UID
449
性别

魔方理论探索者 论坛建设奖 爱心大使 十年元老

发表于 2005-3-8 09:41:01 |显示全部楼层
啊!这样的java图好,因故暂无法装java插件的我也能看能动.有些魔方的java图也能像rosebud的一样吗?(可能外行话了,请谅解.)

使用道具 举报

Rank: 3Rank: 3

积分
831
帖子
110
精华
0
UID
429
性别
发表于 2005-3-8 10:14:04 |显示全部楼层
再来个大的[em01][em01][em01]
...缠缠绵绵...柴米油盐...缠缠绵绵...柴米油盐...

使用道具 举报

Rank: 2

积分
372
帖子
30
精华
0
UID
2654
性别
发表于 2005-7-28 16:50:12 |显示全部楼层

很同意hw294的意见.

刚好这个棋局我也走过,很有异曲同工之妙.

使用道具 举报

Rank: 2

积分
223
帖子
3
精华
0
UID
2827
性别
发表于 2005-8-1 17:16:43 |显示全部楼层
请楼主把分珍珠的原理写出来,我们学习学习,谢![em17]

使用道具 举报

Rank: 4

积分
1351
帖子
245
精华
0
UID
102
性别
发表于 2005-9-4 09:58:18 |显示全部楼层
以下是引用rosebud在2005-3-8 10:14:04的发言:



再来个大的[em01][em01][em01]


我看可以在{数学、算术趣题}中发些象棋的题目让大家做做呀!!!

[此贴子已经被作者于2005-9-4 10:01:18编辑过]


......我爱你,爱着你,就象老鼠爱大米......

使用道具 举报

Rank: 8Rank: 8

积分
4787
帖子
1876
精华
12
UID
93
性别

魔方理论探索者 十年元老

发表于 2005-11-25 09:31:44 |显示全部楼层

加精了。

~~ 宇宙在旋转运动 ~~ 魔方在循环变换 ~~

使用道具 举报

Rank: 2

积分
467
帖子
57
精华
0
UID
582
性别
发表于 2005-12-12 14:18:20 |显示全部楼层

ggglgq先生:

您的<智取华山>游戏我怎么也通不过(只能玩到第5级),能不能请您讲一下详细的算法.谢谢.

使用道具 举报

Rank: 8Rank: 8

积分
4787
帖子
1876
精华
12
UID
93
性别

魔方理论探索者 十年元老

发表于 2005-12-12 20:29:12 |显示全部楼层


simpley 先生的确很强!如果不知道《智娶华山》算法的奥妙,能
玩到第 5 级已经相当不错了。


如果您玩楼主的游戏(或者本人的“追山妹”游戏)没问题的话,您
应该知道她们的算法是“把每一行的特征值用“逻辑异或”加起来,如果
是 0 ,则先走方输,否则先走方赢。”
(注意:楼主的游戏要留意 1 1 1 、 1 1 及 1 的特殊情形。)

同样《智娶华山》的每个单行都可以计算出一个特征值,对于连续的
n 个洞来说,她们的特征值分别是:

0: 0
1: 1
2: 2
3: 3
4: 1
5: 4
6: 3
7: 2
8: 1
9: 4
10:2
11:6
12:4
13:1
14:2
15:7
16:1
17:4
18:3
19:2
20:1
21:4
22:6
......


胜负的判断标准同样是:把每一行的特征值用“逻辑异或”加起来,
如果是 0 ,则先走方输,否则先走方赢。

~~ 宇宙在旋转运动 ~~ 魔方在循环变换 ~~

使用道具 举报

Rank: 8Rank: 8

积分
4787
帖子
1876
精华
12
UID
93
性别

魔方理论探索者 十年元老

发表于 2005-12-12 20:30:43 |显示全部楼层


下面举例说明特征值的计算方法:
每一行都可以计算出一个非负整数的特征值。举例,对于不长于 6 个
的行来说:(表示方法: * 代表一个洞, 0 代表已经被填上的洞。 )

000000 0 000
*00000 1 001
0*0000 1 001
**0000 2 010
00*000 1 001
*0*000 0 000
0**000 2 010
***000 3 011
000*00 1 001
*00*00 0 000
0*0*00 0 000
**0*00 3 011
00**00 2 010
*0**00 3 011
0***00 3 011
****00 1 001
0000*0 1 001
*000*0 0 000
0*00*0 0 000
**00*0 3 011
00*0*0 0 000
*0*0*0 1 001
0**0*0 3 011
***0*0 2 010
000**0 2 010
*00**0 3 011
0*0**0 3 011
**0**0 0 000
00***0 3 011
*0***0 2 010
0****0 1 001
*****0 4 100
00000* 1 001
*0000* 0 000
0*000* 0 000
**000* 3 011
00*00* 0 000
*0*00* 1 001
0**00* 3 011
***00* 2 010
000*0* 0 000
*00*0* 1 001
0*0*0* 1 001
**0*0* 2 010
00**0* 3 011
*0**0* 2 010
0***0* 2 010
****0* 0 000
0000** 2 010
*000** 3 011
0*00** 3 011
**00** 0 000
00*0** 3 011
*0*0** 2 010
0**0** 0 000
***0** 1 001
000*** 3 011
*00*** 2 010
0*0*** 2 010
**0*** 1 001
00**** 1 001
*0**** 0 000
0***** 4 100
****** 3 011

这里,第一列是行的状态,第二列是特征值的十进制表示,第三列是
特征值的二进制表示。
整个游戏的特征值是每一行的特征值的逻辑异或的和。若其为 0,则
先走方输,反之则先走方胜。取胜的方法就是选择一种走法,使得走完后
的特征值为 0。这种走法是必然存在的。


法则一:如果一行被 0 分隔为若干个连续 * 号段,则该行的特征值是
这些 * 号子段的特征值的逻辑异或之和。例如,*0**0* 这个串,被 0 分隔
为三个子串:*,**,*,它们的特征值分别为 1,2,1,因此整个串的特征值
是 1^2^1 = 2。
法则二:连续 * 号的特征值计算方法。 列出按照游戏方法对这行进行
操作后所有可能的情况,这些操作后形成的串成为后继串。对每一个后继串
计算特征值,这些特征值形成了一个集合,不在这个集合中的最小非负整数
就是要求的特征值。 例如,** 这个串,可以按照游戏规则形成 *0,0*,00
三个后继串,他们的特征值分别为 1,1,0,因此不在这个集合中的非负的
最小整数是 2,就是 ** 的特征值。

由 法则一 和 法则二 可以计算出 0 ~ n 的特征值。

~~ 宇宙在旋转运动 ~~ 魔方在循环变换 ~~

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|魔方吧·中文魔方俱乐部

GMT+8, 2019-1-19 04:19

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部