找回密码
 欢迎注册
查看: 16193|回复: 4

[转载] 一道有趣的、老少皆宜的“迷宫”题

[复制链接]
发表于 2007-12-28 08:25:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
    如右图,为一个 5x5 的正方形,但被“挖”去了一格(已用“”标记),还剩 24 格。
    从这 24 格中任选之一开始,请在最短的时间内连续遍历余下的方格。要求不重、不漏、不跳格、不走斜线

注:
  • 该问题是我根据一“江湖骗子”的题目改编(1996 年春节期间)——版权归我个人所有!:)
  • 该问题老少皆宜,大家不妨一试,并可推荐给亲朋好友。
  • 当该贴点击次数在 40 次以上时,我将公布答案。
这个题目不难,具体解答以及该问题的背景请浏览我2001/10/11发在老“数学研发论坛”上的帖子
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2007-12-28 13:21:24 | 显示全部楼层
貌似无解啊!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2007-12-28 13:22:02 | 显示全部楼层

如果这个程序没有BUG,那么无解

/* 如右图,为一个 5x5 的正方形,但被“挖”去了一格(已用“■”标记),还剩 24 格。 从这 24 格中任选之一开始,请在最短的时间内连续遍历余下的方格。要求:不重、不漏、不跳格、不走斜线。 EEEEE EEEEE EEEEE EEOEE EEEEE */ #include using namespace std; long dir[]={-1, 1, -7, 7}; long map[]= { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, }; long count; long way[25]; void go(long pos) { if(map[pos] != 0) { return; } map[pos]=1; way[count]=pos; count++; if(count == 24) { cout << "Find a way!" << endl; } for(long i=0; i < 4; i++) { go(pos + dir[i]); } count--; map[pos]=0; } int main() { for(long i=0; i < 49; i++) { count=0; go(i); } return 0; }
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2007-12-28 13:30:09 | 显示全部楼层
这确实是个无解的问题,在原贴上已有证明(证明过程亦通俗易懂),难得楼上用编程去验证。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2007-12-28 18:36:00 | 显示全部楼层
呵呵,应该增加正方形的大小,计算机估计就不行了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-23 17:28 , Processed in 0.022613 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表