首页 > 编程语言 >回溯算法_N皇后

回溯算法_N皇后

时间:2022-12-05 15:00:36浏览次数:45  
标签:count Function res isOk 算法 回溯 皇后 col row

Sub 回溯算法_N皇后()
    n = 8
    ReDim ar(n)
    cnt = nqueen(n, 0, ar, 0)
    Debug.Print (cnt)
End Sub

Public Function nqueen(n, row, res, count)
    If row = n Then count = count + 1: nqueen = count
    For col = 0 To n - 1
        res(row) = col
        If isOk(row, col, res) Then count = nqueen(n, row + 1, res, count)
    Next
    nqueen = count
End Function

Private Function isOk(row, col, res) As Boolean
    For i = 0 To row - 1
        If res(i) = col Then isOk = False: Exit Function
        If row - i = col - res(i) Or row - i = res(i) - col Then isOk = False: Exit Function
    Next
    isOk = True
End Function

 

标签:count,Function,res,isOk,算法,回溯,皇后,col,row
From: https://www.cnblogs.com/eyunkeji/p/16952272.html

相关文章

  • 验证darknet中前处理做图像缩放(双线性内插值法)scale的算法效果
    ​​DARKNET中使用的缩放算法是双线性内插值法,这里就实际验证一把DARKNET中scale的工作原理与效果:首先这是一张原图,画面中的是南京明城墙玄武门,玄武湖的正门。18年国庆带娃......
  • 每日算法之二叉搜索树的后序遍历序列
    JZ33二叉搜索树的后序遍历序列描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数......
  • js多个(N)个数组的的元素组合排序算法,多维数组的排列组合或多个数组之间的排列组合
    现在有一批手机,其中颜色有['白色','黑色','金色','粉红色'];内存大小有['16G','32G','64G','128G'],版本有['移动','联通','电信'],要求写一个算法,实现[['白色','16G','移动'......
  • 回溯算法_解数独2
    PrivateFunctionsolveSudokuHelper(board)AsBooleanFori=1To9Forj=1To9If(board(i,j)=".")ThenFork=......
  • 排序算法:快速排序
    简介快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排......
  • 排序算法:比较排序
    算法简介:排序排序是一个非常经典的问题,它以特定顺序(递增、非递减(递增或扁平))对数组(或列表)的项目(可以比较,例如整数、浮点数、字符串等)进行重新排序)、递减、非递增(递减或平......
  • 排序算法:非比较排序
    堆排序voidAdjustDown(int*arr,intsz,introot)//向下调整{ intparent=root; intchild=root*2+1; while(child<sz) { if(child+1<sz&&ar......
  • 排序算法:归并排序
    递归实现void_MergeSort(int*arr,intleft,intright,int*tmp){ if(left>=right) return; intmid=left+(right-left)/2; _MergeSort(arr,left,......
  • 卡尔曼滤波之最优状态估计和最优状态估计算法
    1.最优状态估计情景1:假设一个一个比赛中,不同队伍的自动驾驶汽车使用GPS定位,在100种不同的地形上各行驶1公里。每次都尽可能停在终点。然后计算每只队伍的平均最终......
  • 页式存储管理--两种置换算法的实现
    一.实验目的1.了解虚拟存储技术,通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解。2.掌握FIFO和LRU等置换算法,加强对地址转换过程的了解。二.实验内容......