八皇后问题--判断是否是在同一斜线上

八皇后问题是经典的搜索问题,其他文章已经有了很多详细的介绍,本文就不再介绍。本文主要讨论的内容是如何判断是否两个点在同以直线上。
假设一个点 A A A的坐标是 [ a , b ] [a,b] [a,b],那么和该点在同一斜线上的点 A ′ A^{'} A有四种,分别是
[ a + x , b + x ] 、 [ a − x , b − x ] 、 [ a + x , b − x ] 、 [ a − x , b + x ] [a+x,b+x]、[a-x,b-x]、[a+x,b-x]、[a-x,b+x] [a+x,b+x][ax,bx][a+x,bx][ax,b+x]
前两种点横纵坐标相减和A点横纵坐标相减后一样。后两种点横纵坐标相加和A点横纵坐标相加一样。
( a + x ) − ( b + x ) = a − b (a+x)-(b+x) = a-b (a+x)(b+x)=ab
( a − x ) − ( b − x ) = a − b (a-x)-(b-x) = a-b (ax)(bx)=ab
( a + x ) + ( b − x ) = a + b (a+x)+(b-x) = a+b (a+x)+(bx)=a+b
( a − x ) + ( b + x ) = a + b (a-x)+(b+x) = a+b (ax)+(b+x)=a+b
因此,根据这个我们就可以很方便的判断两个点知否在同一斜线上。只要两个点横纵坐标相加结果相等或者相减结果相等,就可以判断两个点在同一斜线上。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值