Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java4皇后修改_Java_N Queens - Fatal编程技术网

Java4皇后修改

Java4皇后修改,java,n-queens,Java,N Queens,请注意:我被要求以任何我喜欢的方式修改NQueens问题。我已经想到了这种方法,并想实施它。这不是一个直接的家庭作业问题,而是我如何实施自己的修改的问题 我在下面写了一个代码,可以解决4个皇后的问题。因此,根据该准则,没有两个皇后可以在同一行、同一列和同一对角线上,从而不具有攻击性。我试图修改它,如果我放置皇后,那么它可以放置在同一列中,但跳过两行,它可以放置在同一行中,跳过两列,同样,它可以放置在同一对角线中,跳过两行和两列 因此,简单地说,女王可以被放置在同一行、同一列、同一对角线上,跳过两

请注意:我被要求以任何我喜欢的方式修改NQueens问题。我已经想到了这种方法,并想实施它。这不是一个直接的家庭作业问题,而是我如何实施自己的修改的问题

我在下面写了一个代码,可以解决4个皇后的问题。因此,根据该准则,没有两个皇后可以在同一行、同一列和同一对角线上,从而不具有攻击性。我试图修改它,如果我放置皇后,那么它可以放置在同一列中,但跳过两行,它可以放置在同一行中,跳过两列,同样,它可以放置在同一对角线中,跳过两行和两列

因此,简单地说,女王可以被放置在同一行、同一列、同一对角线上,跳过两个街区。

对于4皇后区,当前的输出如下所示:

* Q * *
* * * Q
Q * * *
* * Q *

但is还应提供以下输出:

Q * * Q
* * * *
* * * *
Q * * Q
因此,这里女王被放置在每两个街区之后,水平、垂直和对角

代码:

import java.util.*;
公务舱皇后区{
/***************************************…
*如果皇后位置q[n]与
*其他皇后q[0]到q[n-1]
****************************************/
公共静态布尔值是一致的(int[]q,int n){
对于(int i=0;i

我做错了什么?如何更改代码以使其与修改一起工作?

这在您的模型中是不可能的。
在模型中,queens具有下一个坐标:

Oy = q[Ox];  
结果

Q * * Q
* * * *
* * * *
Q * * Q 
数组在同一位置上应有两个值

q[0] == 0  
q[0] == 3  
q[3] == 0  
q[3] == 3  

这在一维数组中是不可能的。您应该更改模型和算法

我看不到代码中的任何地方。但是我会说,
if(q[I]==q[n])返回false将阻止您的示例工作。我尝试使用q[I+2]代替q[I]==q[n],但它无法工作。因此,我已经张贴了没有修改的原始代码。它以传统的方式为4个皇后工作,但不是我希望它以我自己的修改方式工作。@VishalSinha我错了。答案是正确的
q[0]==0
q[0]=3
同时进行。这是不可能的。此非法数组应作为
printQueens
Q * * Q
* * * *
* * * *
Q * * Q 
q[0] == 0  
q[0] == 3  
q[3] == 0  
q[3] == 3