PNP : Paralle N-queens puzzle

多机数据处理

这里写图片描述

这里写图片描述

  • 单机解决
  • 多线程
  • 多个机器
  • 负载均衡

N皇后问题:每一行只能有一个皇后,每一列只能有一个皇后,每一条对角线(反对角线)只能有一个皇后。求解的个数。

这里写图片描述

一种解法:求全排列,然后去掉非法情况

这里写图片描述

这里写图片描述

代码简洁,但是效率低

回溯法

这里写图片描述

回溯法,就是在失败点选择其他值进行试探,直到成功。

通过将错误情况,过早的减枝,可以排除掉很多非法情况。所以相对上面的全排列方法要快很多。

思路就是使用位数组,columns表示那些列被使用了,diagnoal表示对角被使用情况,antidiagnoal表示反对角被使用情况。

这里写图片描述

其中__builtin_ctz为gcc 的builtin函数,用来获取尾部0的个数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值