校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Go語言實現的最簡單數獨解法

Go語言實現的最簡單數獨解法

熱門標簽:百度地圖標注搜索關鍵詞 ?兓? 電梯外呼訪客系統 最短的地圖標注 浙江人工智能外呼管理系統 谷歌便利店地圖標注 電銷機器人可以補救房產中介嗎 成都呼叫中心外呼系統平臺 騰訊外呼系統價格

soduku.go

復制代碼 代碼如下:

package main
import (
    "fmt"
)
type node []int
var sudokuMay [9][9]node
var Sudoku = [9][9]int{
    {0, 0, 0, 0, 0, 0, 8, 0, 0},
    {0, 8, 2, 4, 0, 0, 0, 0, 0},
    {1, 9, 0, 0, 6, 3, 0, 0, 0},
    {0, 5, 0, 0, 8, 0, 7, 0, 0},
    {6, 7, 8, 2, 0, 9, 1, 4, 3},
    {0, 0, 3, 0, 4, 0, 0, 8, 0},
    {0, 0, 0, 6, 2, 0, 0, 9, 4},
    {0, 0, 0, 0, 0, 5, 6, 1, 0},
    {0, 0, 0, 6, 0, 0, 0, 0, 0}}
func main() {
    n := inited(Sudoku)
    SudokuSure, _ := sure(sudokuMay)
    for n > 0 {
        n = Subinit(SudokuSure)
        // Output(sudokuMay)
        // fmt.Println(n)
        SudokuSure, _ = sure(sudokuMay)
    }
    Output(sudokuMay)
    fmt.Println(isEnable(sudokuMay))
    // test()
}
func isEnable(tn [9][9]node) bool {
    for i := 0; i 9; i++ {
        for j := 0; j 9; j++ {
            if len(tn[i][j]) == 0 {
                return false
            }
        }
    }
    return true
}
func sure(may [9][9]node) (sure [9][9]int, n int) {
    n = 0
    for i := 0; i 9; i++ {
        for j := 0; j 9; j++ {
            if len(may[i][j]) == 1 {
                sure[i][j] = may[i][j][0]
                n++
            } else {
                sure[i][j] = 0
            }
        }
    }
    return
}
func test() {
    i, j := 1, 3
    fmt.Println(Sudoku[i][j])
    for k := ((i / 3) * 3); k ((i/3)*3)+3; k++ {
        for l := ((j / 3) * 3); l ((j/3)*3)+3; l++ {
            fmt.Print(Sudoku[k][l])
        }
        fmt.Println(" ")
    }
}
func inited(Sud [9][9]int) (changeCount int) {
    tmp := 0
    changeCount = 0
    for i := 0; i 9; i++ {
        for j := 0; j 9; j++ {
            if Sud[i][j] != 0 {
                sudokuMay[i][j] = append(sudokuMay[i][j], Sud[i][j])
            } else {
                for k := 0; k 9; k++ {
                    sudokuMay[i][j] = append(sudokuMay[i][j], k+1)
                }
                sudokuMay[i][j], tmp = excludeMay(i, j, sudokuMay[i][j], Sud)
                changeCount += tmp
            }
        }
    }
    return
}
func Subinit(Sud [9][9]int) (changeCount int) {
    tmp := 0
    changeCount = 0
    for i := 0; i 9; i++ {
        for j := 0; j 9; j++ {
            if Sud[i][j] != 0 {
                sudokuMay[i][j][0] = Sud[i][j]
            } else {
                sudokuMay[i][j], tmp = excludeMay(i, j, sudokuMay[i][j], Sud)
                changeCount += tmp
            }
        }
    }
    return
}
func excludeMay(ti, tj int, t node, S [9][9]int) (rmay node, changeCount int) {
    changeCount = 0
    var tmpChangeCount int
    for i := 0; i 9; i++ {
        if S[i][tj] != 0 {
            t, tmpChangeCount = exclude(t, S[i][tj])
            changeCount += tmpChangeCount
        }
        if S[ti][i] != 0 {
            t, tmpChangeCount = exclude(t, S[ti][i])
            changeCount += tmpChangeCount
        }
    }
    for k := ((ti / 3) * 3); k ((ti/3)*3)+3; k++ {
        for l := ((tj / 3) * 3); l ((tj/3)*3)+3; l++ {
            if S[k][l] != 0 {
                t, tmpChangeCount = exclude(t, S[k][l])
                changeCount += tmpChangeCount
            }
        }
    }
    rmay = t
    return
}
func excludeFirstOne(smay node, n int) (rmay node, changeCount int) {
    changeCount = 0
    rmay = smay
    for i := 0; i len(smay); i++ {
        if smay[i] == n {
            changeCount++
            rmay = append(smay[:i], smay[i+1:]...)
            return
        }
        if i == len(smay)-1 {
            return
        }
    }
    return
}
func exclude(smay node, n int) (tmp node, changeCount int) {
    var nc int
    changeCount = 0
    tmp, nc = excludeFirstOne(smay, n)
    for nc > 0 {
        tmp, nc = excludeFirstOne(tmp, n)
        changeCount++
    }
    return
}
func Output(sudoku [9][9]node) {
    for i := 0; i 9; i++ {
        for j := 0; j 9; j++ {
            fmt.Print(sudokuMay[i][j])
        }
        fmt.Println("")
    }
}

以上就是本文給大家分享的代碼的全部內容了,希望大家能夠喜歡。

您可能感興趣的文章:
  • Java實現解數獨的小程序
  • JavaScript遍歷求解數獨問題的主要思路小結
  • python實現數獨算法實例
  • c++遞歸解數獨方法示例
  • JQuery開發的數獨游戲代碼
  • PHP實現的方程求解示例分析
  • PHP經典算法集錦【經典收藏】
  • php編寫的抽獎程序中獎概率算法
  • php 大數據量及海量數據處理算法總結
  • 適用于抽獎程序、隨機廣告的PHP概率算法實例
  • php中最簡單的字符串匹配算法
  • php數字轉漢字代碼(算法)
  • PHP實現的數獨求解問題示例

標簽:雅安 宜昌 紹興 上海 眉山 邢臺 盤錦 七臺河

巨人網絡通訊聲明:本文標題《Go語言實現的最簡單數獨解法》,本文關鍵詞  語言,實現,的,最簡,單數,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Go語言實現的最簡單數獨解法》相關的同類信息!
  • 本頁收集關于Go語言實現的最簡單數獨解法的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    久久国产日韩欧美精品| 日韩免费在线观看| 色伊人久久综合中文字幕| 成人avav在线| 91麻豆文化传媒在线观看| 99re亚洲国产精品| 色综合久久综合| 色偷偷久久人人79超碰人人澡| 91网站在线观看视频| 在线免费精品视频| 欧美日韩一区二区欧美激情| 777色狠狠一区二区三区| 欧美电视剧在线观看完整版| 久久一夜天堂av一区二区三区| 久久久亚洲精品一区二区三区 | 一区二区激情小说| 一区二区欧美视频| 午夜精品久久久久久久| 婷婷成人综合网| 国产在线不卡视频| 成人激情小说网站| 欧洲中文字幕精品| 日韩一区二区中文字幕| 久久色视频免费观看| 国产午夜精品一区二区| 国产精品久久久久永久免费观看 | 中文字幕免费不卡在线| 亚洲女人****多毛耸耸8| 一区二区三区在线免费视频| 石原莉奈在线亚洲二区| 韩国成人福利片在线播放| 成人黄色小视频| 欧美日韩aaa| 久久精品人人爽人人爽| 亚洲天堂免费在线观看视频| 日韩制服丝袜先锋影音| 精品一区二区影视| eeuss鲁片一区二区三区在线看| 色婷婷国产精品久久包臀| 欧美一区二区三区色| 国产网红主播福利一区二区| 亚洲三级电影网站| 久久精品国产一区二区| 成人av在线网站| 欧美一区二区三区免费观看视频| 国产三级精品三级在线专区| 亚洲国产婷婷综合在线精品| 狠狠色丁香久久婷婷综合丁香| 国产成人精品影院| 精品视频1区2区3区| 国产午夜一区二区三区| 亚洲h在线观看| 成人性视频网站| 欧美肥妇bbw| 国产精品理伦片| 美日韩一区二区| 91亚洲国产成人精品一区二三| 日韩女优电影在线观看| 亚洲欧美一区二区三区久本道91| 久久精品999| 欧美性大战久久| 欧美国产日韩在线观看| 免费成人av资源网| 91视频.com| 久久久久久久精| 日韩高清在线一区| 91色婷婷久久久久合中文| 精品国产乱码久久久久久夜甘婷婷| 亚洲欧美日韩电影| 国产精品一二三四区| 91精品国产综合久久久久久久久久 | 欧美片网站yy| 中文字幕在线不卡| 国产制服丝袜一区| 欧美久久一二三四区| 亚洲人成网站影音先锋播放| 国产精品一区免费视频| 欧美一级片免费看| 亚洲自拍偷拍网站| 99国产精品久久久久久久久久久| 精品久久久久一区二区国产| 日日夜夜一区二区| 一本到一区二区三区| 国产精品欧美一级免费| 国产一区二区91| 日韩欧美高清在线| 日韩高清一级片| 欧美精品乱码久久久久久按摩| 亚洲综合色噜噜狠狠| 91视视频在线直接观看在线看网页在线看| 精品国产乱码久久久久久浪潮| 天天色图综合网| 欧美日韩成人一区| 亚洲高清免费在线| 色94色欧美sute亚洲线路二| 国产精品国产a| 成人激情免费视频| 国产精品素人一区二区| 成人精品在线视频观看| 久久久精品tv| 国产成人免费视频网站高清观看视频| 26uuu亚洲综合色| 国产一区二区三区日韩| 久久亚洲欧美国产精品乐播| 国产在线精品一区二区不卡了| 日韩精品在线看片z| 免费看欧美美女黄的网站| 日韩西西人体444www| 久久国产人妖系列| 久久青草国产手机看片福利盒子| 蓝色福利精品导航| 久久蜜桃一区二区| 粉嫩一区二区三区性色av| 亚洲国产成人自拍| 99精品久久只有精品| 亚洲精品视频在线| 欧美在线999| 午夜精品在线视频一区| 日韩欧美一级特黄在线播放| 麻豆精品久久久| 国产丝袜美腿一区二区三区| 成人一级片网址| 亚洲欧美日韩小说| 欧美日韩午夜在线视频| 日韩在线卡一卡二| 精品国产伦一区二区三区免费 | 日韩免费视频一区二区| 国产专区综合网| 最新中文字幕一区二区三区| 在线这里只有精品| 日本亚洲三级在线| 国产亚洲综合色| 91蜜桃视频在线| 日本不卡高清视频| 欧美国产精品一区二区| 日本久久一区二区| 视频一区在线播放| 久久精品亚洲一区二区三区浴池| eeuss鲁片一区二区三区在线看| 亚洲狠狠爱一区二区三区| 精品久久久久久久久久久久久久久 | 精品一区二区三区在线播放视频| 国产性色一区二区| 欧美性受xxxx黑人xyx性爽| 麻豆国产欧美日韩综合精品二区 | 久久99日本精品| 亚洲同性gay激情无套| 91精品国产免费久久综合| 国产成人日日夜夜| 亚洲风情在线资源站| 久久人人爽人人爽| 欧美制服丝袜第一页| 国产一区二区按摩在线观看| 亚洲黄一区二区三区| 久久久久一区二区三区四区| 在线观看成人免费视频| 激情文学综合丁香| 亚洲午夜电影网| 日本一区二区在线不卡| 欧美日韩精品一区二区三区四区 | 国产老妇另类xxxxx| 亚洲妇女屁股眼交7| 欧美国产97人人爽人人喊| 欧美日韩另类一区| 国产成人在线免费观看| 日韩精品91亚洲二区在线观看| 久久久不卡网国产精品二区 | 中文字幕免费不卡在线| 欧美一级爆毛片| 欧美亚日韩国产aⅴ精品中极品| 国内成人精品2018免费看| 一级精品视频在线观看宜春院 | 日本不卡免费在线视频| 亚洲日本一区二区三区| 久久久精品国产99久久精品芒果| 在线观看91精品国产麻豆| 92国产精品观看| 懂色中文一区二区在线播放| 琪琪久久久久日韩精品| 亚洲日本在线天堂| 中文字幕巨乱亚洲| 亚洲精品一区在线观看| 7777精品伊人久久久大香线蕉的 | 欧美唯美清纯偷拍| www.欧美日韩国产在线| 国产一区二区日韩精品| 蜜臀av一区二区| 亚洲成a人片综合在线| 亚洲精品福利视频网站| 最新日韩在线视频| 国产精品午夜电影| 国产婷婷色一区二区三区在线| 日韩精品一区二区在线| 这里只有精品电影| 欧美无人高清视频在线观看| 日本乱人伦aⅴ精品| 色哟哟一区二区在线观看 | 18涩涩午夜精品.www| 国产精品天美传媒沈樵| 国产欧美一二三区|