作者fatalismo (fatalismo)
看板Prob_Solve
标题Re: [问题] 棋盘上最短距离的问题
时间Tue Jul 17 11:20:06 2012
每走 1 斜边使得 x 距离与 y 距离各缩减 1 个单位,直到 x 与 y 其中之一距离达 0
,这时只要往 x 或往 y 方向,直行其剩余距离 ( max( |x| - |y|, |y| - |x| ) ),即
可到达目的地。
※ 引述《keke0421 (zrae)》之铭言:
: 大家好
: 最近写程式写到一个题目,题目如下。
: 假设有8*8的一个矩阵棋盘,上面有四个棋子,分别为王、后、车、象。
: 其行走规则如下:
: 王 : 横、直、斜都可以走,但一次只能走一格
: 后 : 横、直、斜都可以走,但不限格数
: 问,今天给你座标上任一点的起始位置与终点位置,请问王、后的最短距离是?
: 我的问题是:
: 横、直一下子就想出来了。至於斜边试过几个方法失败後(毕氏定理..etc)
: 用归纳法可以解决,方法就是假设起始位置(x1,y1),终点位置(x2,y2)
: 设x= abs(x1-x2) , y = abs(y1-y2)
: 只要x<y则最短距离就是y,否则就是x
: 我想用数学方法来解决,但是还是想不通,为何一个棋盘上的最短距离
: 只需要靠x,y就可以决定呢?
: 感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.167.56.102
1F:→ fatalismo:|d| = min( |x|, |y| ) + max( |x| - |y|, |y| - |x| ) 07/17 11:22
2F:→ fatalismo:= max( |x|, |y| ) 07/17 11:22
3F:推 keke0421:感谢~我懂了 07/18 07:10