• sudoku--设想


    在查阅了一些资料和自己动手写一写后,找到一种可行的解法。

    • 第一步

    首先将9x9的数独方格分成九份3x3的九宫格,如下图

    B1 B2 B3
    B4 B5 B6
    B7 B8 B9

    而后在左上角的B1上随机生成九个数填入,我们用abcdefghi等字母来代替数字和说明普遍性,如下(0代表尚未填入)

    B1:a b c B2:0 0 0 B3:0 0 0
         d e f      0 0 0      0 0 0
         g h i      0 0 0      0 0 0
    B4:0 0 0 B5:0 0 0 B6:0 0 0
         0 0 0      0 0 0      0 0 0
         0 0 0      0 0 0      0 0 0
    B7:0 0 0 B8:0 0 0 B9:0 0 0
         0 0 0      0 0 0      0 0 0
         0 0 0      0 0 0      0 0 0

    • 第二步

    将B1的每一行进行自上而下的交换,分别填入B2、B3中,将列自右而左的交换填入B4、B5中,结果如下

    B1:a b c B2:d e f B3:g h i
         d e f      g h i      a b c
         g h i      a b c      d e f
    B4:c g b B5:0 0 0 B6:0 0 0
         f d e      0 0 0      0 0 0
         i g h      0 0 0      0 0 0
    B7:b c a B8:0 0 0 B9:0 0 0
         e f d      0 0 0      0 0 0
         h i g      0 0 0      0 0 0

    这样呢因为本身左上角的九宫格就不会有重复的数字出现,则填好的其他九宫格也不会有重复的数字出现。且每一行每一列都由前一行变得,也做到了行、列中不会有重复的数字。

    • 第三步

    最后呢,我们将B2的列进行从右到左的交换,依次填入B5、B8中,将B3的列进行从右到左的交换,依次填入B6、B9中得到如下

    B1:a b c B2:d e f B3:g h i
         d e f      g h i      a b c
         g h i      a b c      d e f
    B4:c g b B5:f d e B6:i g h
         f d e      i g h      c a b
         i g h      c d b      f d e
    B7:b c a B8:e f d B9h i g
         e f d     h i g     b c a
         h i g     b c a     e f d

    可以看出这是一个合乎规定的数独,接下来就是代码了,给自己加油

  • 相关阅读:
    期权标的概率密度函数
    Girsanov Theorem
    拉马努金恒等式
    波动率的三类模型
    stack(栈) and heap(堆)
    covar of lognormal variables
    BS 相关的一些近似公式
    布朗运动的一些特殊性质
    排序算法
    Mac node.js
  • 原文地址:https://www.cnblogs.com/SwordX/p/7486900.html
Copyright © 2020-2023  润新知