我已经完成了创建非常快速的nqueens程序的任务。到目前为止,Bruteforce算法和Backtrack正在工作,但我发现了一个似乎更快的C程序。现在我试图将它从C转换为Java,但是我无法转换指针,因为我不了解指针发生了什么。 这些都是必须转换线: 编辑:我已经更新了转换到就我的理解: final int[] aStack = new int[MAX_BOARDSIZE * 2];
int
我正在开发一种启发式方法来在8x8棋盘上放置8个皇后。每个正方形都有自己的消除数(用于表示如果一个皇后放在那个正方形中,空棋盘有多少个正方形被“消除”),并且每个正方形应放置在消除数最少的正方形中。 我的问题是,我不知道该怎么做才能减少它们相应的正方形的具体消除数量,所以我会很感激你是否帮助过我。 另一个问题,我觉得我的代码非常复杂,所以任何笔记都可以使它更简单? 这里是我的代码 public c
我开始在C#上的一些编码,并尝试N皇后的问题有轻微的变化(女王也有骑士的力量)。一个限制后,它开始显示由于一次又一次地调用函数而导致的stackoverflow问题。 任何人都可以请帮助我理解我面临的问题。以下是n皇后问题的代码。 private int[] BackTrack(int queenRow, int column)
{
for (int i = column; i < s
工作,我有一个单线程的Python模块(用于解决正皇后问题)这个重要的方法: def step(self):
r = Random()
poz = r.choice(self.available) #!!!problem here
#poz = 9 #this will work
for p in self.available:
if s
这是我在java中的n皇后问题的代码。然而,当它应该是92时,输出为0(在这种情况下为8个皇后的解决方案的数量)。我们应该只使用堆栈和回溯(无递归!!)。我真的被卡住了!任何帮助将不胜感激! import java.util.Stack;
public class NQueens {
//***** fill in your code here *****
//feel
NQueen problem是backtracking的着名示例。从source阅读后,我尝试了下面的代码片段。 int isSafe(int k,int i,int *x)
{
int j;
for(j=0;j<k;j++)
{
//old queen is placed at jth row of x[j] column
//ne