java 九宫格算法,根据已知数据算出九宫格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 九宫格算法,根据已知数据算出九宫格相关的知识,希望对你有一定的参考价值。

已知数据格式:
0 0 1 0 0 5 0 6 9
0 0 7 9 0 2 0 0 3
0 4 0 6 3 0 0 0 2
0 0 0 7 0 0 1 2 4
7 1 0 0 0 0 0 3 5
4 2 6 0 0 3 0 0 0
3 0 0 0 7 1 0 9 0
1 0 0 5 0 6 3 0 0
6 9 0 3 0 0 2 0 0

生成的数据:
2 3 1 8 4 5 7 6 9
8 6 7 9 1 2 4 5 3
5 4 9 6 3 7 8 1 2

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

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

高手求救

手头只有C++ code就不贴了 百度java 解数独一堆code
简单的直接DFS,效率更高的上dancing links

DFS: http://blog.csdn.net/sd4000784/article/details/8013544
D链: http://www.xuebuyuan.com/756388.html
参考技术A 循环试吧,直到试对为止,就像密码破解

JS  实现九宫格算法

九宫格算法核心:

  1. 利用控件索引index计算出控件所在的行数和列数;
  2. 利用控件计算出left距离;
  3. 利用控件计算出top距离;
  4. 写特效时需要用到定位

公式:

  • 行 row=parseInt(i/cols);
  • 列 col=parseInt(i%cols);

i是当前的盒子,cols是总列数,

代码示例:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>九宫格</title>
        <style>
           *{
               padding: 0;
               margin: 0;
           }
           #top{
               margin-top:30px;
               margin-bottom: 20px;
               margin-left:20px;
           }
           #bottom{
               position: relative;
           }
           #bottom .content{
               width: 220px;
               height: 360px;
               background-color: skyblue;
               margin: 0 0 15px 15px;
               padding: 5px;
           }
           .content img{
               width: 220px;
               height: 308px;
           }
           #bottom .content p:last-child{
               font-size: 15px;
               color: red;
           }
        </style>
    </head>
    <body>
        <div id="top">
           <button>排成三列</button>
           <button>排成四列</button>
           <button>排成五列</button>
        </div>
        <div id="bottom">
           <div class="content">
              <img src="./images/dianying.jpg">
              <p>是一部非常成功的导演处女作</p>
              <p>几乎全面启用新演员的做法</p>
           </div>
           <div class="content">
              <img src="./images/dianying.jpg">
              <p>是一部非常成功的导演处女作</p>
              <p>几乎全面启用新演员的做法</p>
           </div>
           <div class="content">
              <img src="./images/dianying.jpg">
              <p>是一部非常成功的导演处女作</p>
              <p>几乎全面启用新演员的做法</p>
           </div>
           <div class="content">
              <img src="./images/dianying.jpg">
              <p>是一部非常成功的导演处女作</p>
              <p>几乎全面启用新演员的做法</p>
           </div>
           <div class="content">
              <img src="./images/dianying.jpg">
              <p>是一部非常成功的导演处女作</p>
              <p>几乎全面启用新演员的做法</p>
           </div>
           <div class="content">
              <img src="./images/dianying.jpg">
              <p>是一部非常成功的导演处女作</p>
              <p>几乎全面启用新演员的做法</p>
           </div>
           <div class="content">
              <img src="./images/dianying.jpg">
              <p>是一部非常成功的导演处女作</p>
              <p>几乎全面启用新演员的做法</p>
           </div>
           <div class="content">
              <img src="./images/dianying.jpg">
              <p>是一部非常成功的导演处女作</p>
              <p>几乎全面启用新演员的做法</p>
           </div>
           <div class="content">
              <img src="./images/dianying.jpg">
              <p>是一部非常成功的导演处女作</p>
              <p>几乎全面启用新演员的做法</p>
           </div>
           <div class="content">
              <img src="./images/dianying.jpg">
              <p>是一部非常成功的导演处女作</p>
              <p>几乎全面启用新演员的做法</p>
           </div>
           <div class="content">
              <img src="./images/dianying.jpg">
              <p>是一部非常成功的导演处女作</p>
              <p>几乎全面启用新演员的做法</p>
           </div>
           <div class="content">
              <img src="./images/dianying.jpg">
              <p>是一部非常成功的导演处女作</p>
              <p>几乎全面启用新演员的做法</p>
           </div>
           <div class="content">
              <img src="./images/dianying.jpg">
              <p>是一部非常成功的导演处女作</p>
              <p>几乎全面启用新演员的做法</p>
           </div>
           <div class="content">
              <img src="./images/dianying.jpg">
              <p>是一部非常成功的导演处女作</p>
              <p>几乎全面启用新演员的做法</p>
           </div>
           <div class="content">
              <img src="./images/dianying.jpg">
              <p>是一部非常成功的导演处女作</p>
              <p>几乎全面启用新演员的做法</p>
           </div>
        </div>
        <script>
            window.onload=function(){
                var top=document.getElementById("top");
                var btns=top.getElementsByTagName("button");
                var content=document.getElementById("bottom");
                // console.log(content.children);
                //console.log(btns);
                //定义变量标识盒子的宽度和高度
                 var cssW=220;
                 var cssH=360;
                 var marginXY=15;
                 //监听按钮点击事件
                btns[0].onclick=function(){
                   getContent(3);
                }
                btns[1].onclick=function(){
                   getContent(4)
                }
                btns[2].onclick=function(){
                   getContent(5);
                }
                function getContent(cols){
                    var cols;
                    //遍历
                   for(var i=0;i<content.children.length;i++){
                       var currentCont=content.children[i];
                       //console.log(currentCont);
                       //盒子所在的行
                       var row=parseInt(i/cols);
                       //盒子所在的列
                       var col=parseInt(i%cols);
                       //console.log("盒子在第" +row+ "行,""在第" +col+ "列");
                       currentCont.style.position="absolute";
                       currentCont.style.left=col*(cssW+marginXY)+"px";
                       currentCont.style.top=row*(cssH+marginXY)+"px";
                 }
                }
            }
        </script>
    </body>
</html>

 

以上是关于java 九宫格算法,根据已知数据算出九宫格的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV玩九宫格数独(零)——预告篇

挑战程序设计竞赛(算法和数据结构)——19.2九宫格拼图问题的JAVA实现

算法之美--2.3.3九宫格问题

iOS开发系列-九宫格算法-xib

iOS应用九宫格算法

JS  实现九宫格算法