求数独答案

来自:    更新日期:早些时候
求数独答案~

  7 8 6 5 1 4 3 2 9
  2 4 9 3 7 6 5 8 1
  1 5 3 2 8 9 4 7 6
  4 6 5 1 3 7 8 9 2
  8 3 1 9 5 2 6 4 7
  9 2 7 6 4 8 1 5 3
  5 1 4 7 9 3 2 6 8
  6 9 8 4 2 1 7 3 5
  3 7 2 8 6 5 9 1 4

  附解题程序代码
  program zk;{20:16 -22:12}
  const n=9;
  var
  i,j,a,b,c,t,p:longint;
  map:array [1..9,1..9] of longint;
  hang,lie,gong:array [1..9,1..9] of boolean;
  h,l,g:array [1..9] of longint;
  ok:boolean;
  wei:array [1..9,1..9] of longint=((1,1,1,2,2,2,3,3,3),(1,1,1,2,2,2,3,3,3),(1,1,1,2,2,2,3,3,3),(4,4,4,5,5,5,6,6,6),(4,4,4,5,5,5,6,6,6),(4,4,4,5,5,5,6,6,6),(7,7,7,8,8,8,9,9,9),(7,7,7,8,8,8,9,9,9),(7,7,7,8,8,8,9,9,9));
  lin,lll:array [1..10] of longint;
  procedure print;
  var
  a,b:longint;
  begin
  for a:=1 to 9 do
  begin
  for b:=1 to 9 do
  write(map[a,b],' ');
  writeln;
  end;
  end;

  procedure sou(k,z:longint);
  var
  s:longint;
  begin
  if z=10 then begin inc(k); z:=1; end;
  if (k=10) and (z=1) then begin print; ok:=true; exit; end;
  if k=10 then exit;
  if map[lin[k],lll[z]]=0
  then
  for s:=1 to 9 do
  if (hang[lin[k],s]=false) and (gong[wei[lin[k],lll[z]],s]=false) and (lie[lll[z],s]=false) then
  begin
  map[lin[k],lll[z]]:=s;
  hang[lin[k],s]:=true; lie[lll[z],s]:=true; gong[wei[lin[k],lll[z]],s]:=true;
  sou(k,z+1);
  if ok then exit;
  hang[lin[k],s]:=false; lie[lll[z],s]:=false; gong[wei[lin[k],lll[z]],s]:=false;
  map[lin[k],lll[z]]:=0;
  end else
  else sou(k,z+1);
  end;


  begin
  assign(input,'sudoku.in');
  assign(output,'sudoku.out');
  reset(input);
  rewrite(output);
  readln(t);
  for p:=1 to t do
  begin
  for i:=1 to 9 do
  begin
  lin[i]:=i;
  lll[i]:=i;
  end;
  fillchar(hang,sizeof(hang),false);
  fillchar(lie,sizeof(lie),false);
  fillchar(gong,sizeof(gong),false);
  fillchar(h,sizeof(h),0);
  fillchar(l,sizeof(l),0);
  fillchar(g,sizeof(g),0);
  ok:=false;
  for i:=1 to 9 do
  begin
  for j:=1 to 9 do
  begin
  read(map[i,j]);
  if map[i,j]0 then
  begin
  hang[i,map[i,j]]:=true; inc(h[i]);
  lie[j,map[i,j]]:=true; inc(l[j]);
  gong[wei[i,j],map[i,j]]:=true; inc(g[wei[i,j]]);
  end;
  end;
  readln;
  end;
  for i:=1 to n do
  for j:=i to n do
  if h[i]<h[j] then
  begin
  c:=h[i]; h[i]:=h[j]; h[j]:=c;
  c:=lin[i]; lin[i]:=lin[j]; lin[j]:=c;
  end;
  for i:=1 to n do
  for j:=i to n do
  if l[i]<l[j] then
  begin
  c:=l[i]; l[i]:=l[j]; l[j]:=c;
  c:=lll[i]; lll[i]:=lll[j]; lll[j]:=c;
  end;
  sou(1,1);
  end;
  close(output);
  close(input);
  end.

在1列,有数对46去除本列包含该数对数字的候选数
在第一排第3个方框,有隐形数对27,去除本方框包含该数对数字的候选数
在7列,有数对27去除本列包含该数对数字的候选数
排除法(非逻辑算法):[A,1]不能是数字7,[A,1]=1 //关键是这一步。。。
在第一排第2方框,[B,4] 的候选数1是该方框唯一候选数
在第二排第1方框,[D,2] 的候选数1是该方框唯一候选数
在第二排第1方框,[F,2] 的候选数2是该方框唯一候选数
在B行,[B,3] 的候选数5是该行唯一候选数
[C,1]=7,
[C,7]=2,
[C,5]=3
[D,1]=5,
[D,5]=2,
[D,4]=3,
[D,7]=6,
[F,6]=4,
[E,6]=5,
[C,6]=6,
[A,6]=2,
[A,4]=4,
[A,2]=6,
[B,2]=8,
[B,7]=3,
[C,3]=4,
[C,9]=8,
[F,1]=6,
[F,7]=8,
[E,8]=7,
[D,8]=9,
[F,8]=3,

完成。。。


163 482 759
285 179 346
794 536 218

517 328 694
348 965 172
629 714 835

972 651 483
436 897 521
851 243 967

前面已经回答过了,见参考资料

直观法可解
152 937 648
789 146 235
463 852 917

624 385 791
837 691 524
591 274 386

375 419 862
946 728 153
218 563 479

*-----------------------------------------------*
| 1 5 2| 9 3 7| 6 4 8|
| 7 8 9| 1 4 6| 2 3 5|
| 4 6 3| 8 5 2| 9 1 7|
|--------------+-------------+--------------|
| 6 2 4| 3 8 5| 7 9 1|
| 8 3 7| 6 9 1| 5 2 4|
| 5 9 1| 2 7 4| 3 8 6|
|--------------+-------------+--------------|
| 3 7 5| 4 1 9| 8 6 2|
| 9 4 6| 7 2 8| 1 5 3|
| 2 1 8| 5 6 3| 4 7 9|
*-----------------------------------------------*


求数独答案视频

相关评论:
  • 18232361724数独的答案
    薄时侮答案如图所示

  • 18232361724求数独答案,详细如下
    薄时侮回答:满意请采纳

  • 18232361724六宫格数独在哪里找答案
    薄时侮六宫格数独这样找答案:1、首先,将6宫格数独的题目用手机拍照或扫描到电脑上,保存为图片文件。2、然后,打开数独求解器工具,将图片文件导入到工具中。3、接着,点击“求解”按钮,等待数独求解器自动计算出答案。

  • 18232361724求数独大神给解答步骤,不是答案,是步骤,谢谢
    薄时侮向左转|向右转答案如图过程:首先在H7格中填入2(试填)G7格中填3(对G行应用隐性唯一候选数法)G1格填9(接下来对G4、G5、G6单元格应用候选数区块删减法)H5格候选378,I4候选348I5候选34678(试填)在G5格填1(对第2宫应用隐性唯一候选数法)A4格填1(试填)G2格填8,A3候选289,B1候...

  • 18232361724怎样用九宫格数独算出答案?
    薄时侮九宫格的计算公式或者口诀有很多种。比如:1、二四为肩, 六八为足, 上九下一, 左七右三。2、一居上行正中央,依次斜填切莫忘;上出框时向下放,右出框时向左放;排重便在下格填,右上排重一个样。口诀不仅适用于九宫,也适用于推广的奇数九宫,如五五图,七七图等等。

  • 18232361724数独求解!
    薄时侮71=1, 99=6, 39=7, 79=9, 21=7, 87=7, 68=7, 75=2.现在, 第7行放不进6, 矛盾. 所以33=5, 73=1.注意到第7行的2只能在71或75. 假设75=2. 那么71=3, 82=2, {91,93}={5,8}, 95=6.现在任何数填进99都矛盾. 所以71=2. 剩下的都很容易解. 最终解答如图....

  • 18232361724九宫格数独题目求答案
    薄时侮数独(日语:数独)是一种逻辑性的数字填充游戏,玩家需要填入1至9的数字,使得每一行、每一列以及每个3x3的宫中数字1至9各出现一次。游戏设计者会预先在谜题中填入一些数字,确保谜题有唯一解。一个已解答的数独实际上是一个增加了宫限制的拉丁方阵,其中同一数字不会在同一行、列或宫中重复出现。以下...

  • 18232361724数独,求大神解答
    薄时侮杀手数独答案:1、3、2、8、5、6、9、4、7 6、9、5、4、7、3、1、8、2 7、4、8、2、1、9、3、6、5 9、5、6、7、3、8、2、1、4 4、1、3、5、6、2、7、9、8 8、2、7、1、9、4、6、5、3 5、7、4、6、2、1、8、3、9 2、6、9、3、8、5、4、7、1 3、8、...

  • 18232361724数独,求解!
    薄时侮答案如图

  • 18232361724数独。怎么解?
    薄时侮数独答案:7、3、1、6、5、8、2、4、9 5、9、8、2、7、4、1、3、6 6、4、2、9、1、3、5、8、7 2、7、4、1、3、9、6、5、8 8、1、9、5、4、6、3、7、2 3、6、5、7、8、2、9、4、1 1、2、3、4、6、7、8、9、5 9、8、6、3、2、5、7、1、4 4、5、7、...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网