检查数独中的每个随机数(Java)

我有以下代码,它通过检查数独中的每个随机数是否没有重复来解决数独问题,但它不起作用,我认为它进入了无限循环,因为它没有任何结果显示,如果我的方法完全错误,请告诉我正确的做法并帮我编辑代码。

 package essai;import java.util.Random;public class Essai_checker {    static final boolean valide=true;    static final boolean non_valide=false;    //检查数字在行、列或子网格中是否没有重复 static boolean checkInt(int a[][],int test,int c_i,int c_j){        if(test==0) return non_valide;        //检查行        for(int i=0;i<9;i++){            if(test==a[c_i][i]) return non_valide;        }        //检查列        for(int i=0;i<9;i++){            if(test==a[i][c_j]) return non_valide;        }        //检查子网格        int ii=c_i/3;        int jj=c_j/3;        // 这些测试用于确定哪个子网格包含该数字         if(ii<3) c_i=0;         else             if(ii>1 && ii<2) c_i=3;                 else if(ii>2 && ii<=3) c_i=6;        if(jj<3) c_j=0;        else             if(jj>1 && jj<2) c_j=3;                 else if(jj>2 && jj<=3) c_j=6;        for(int i=c_i;i<c_i+3;i++){            for(int j=c_j;j<c_j+3;j++){                if(test==a[c_i][c_j]) return non_valide;            }        }            return valide;        }    public static void main(String[] args) {        int [][] soduko2={                {0,0,0,0,0,0,0,0,0},                {0,0,0,0,0,0,0,0,0},                {0,0,0,0,0,0,0,0,0},                {0,0,0,0,0,0,0,0,0},                {0,0,0,0,0,0,0,0,0},                {0,0,0,0,0,0,0,0,0},                {0,0,0,0,0,0,0,0,0},                {0,0,0,0,0,0,0,0,0},                {0,0,0,0,0,0,0,0,0}            };        Random r=new Random();        for(int i=0;i<9;i++){            for(int j=0;j<9;j++){                int entier=r.nextInt(9)+1;                boolean init =checkInt(soduko2,entier,i,j);                while(init ==non_valide){                    entier=r.nextInt(9);                    init =checkInt(soduko2,entier,i,j);                }                if(init=true)                    soduko2[i][j]=entier;            }            }        for(int i=0;i<9;i++){            for(int j=0;j<9;j++){                System.out.println(soduko2[i][j]+",");            }        }        System.out.println("完成!");    }}

回答:

首先,条件 (ii>1 && ii<2) 总是为假,不知道这是否会成为问题

其次,条件 (ii>2 && ii<=3) 只有在 ii==3 时才为真

这可能是问题的一部分

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注