用SQL求解數獨 Sudoku

2021-04-13 02:39:59 字數 549 閱讀 6557

看來用xslt解數獨已經沒有挑戰性了, 因為xslt是披著xml外衣的函式程式語言。所以閒人中的閒人們用新時代的彙編--sql,來解決數獨問題。當然不是sql 92了,而是用了oracle10g裡介紹的model語句。這麼看來,鄒鍵老大用sql解簡單演算法題也不算離譜。:-d

oracle的model語句允許我們建立多維陣列,並通過設定規則來處理陣列,得到新的結果。規則本身可以遞迴。計算後陣列本身不必被破壞。聽上去是不是像用oracle作後台的excel?不過我提到過excel也是函式程式設計系統麼?用sql解數獨的基本思路就是用model語句描述數獨成立的規則,當應用select語句時,這些規則被執行,滿足規則的陣列也就是數獨答案就被搜尋出來了。

不過我還是對sql興趣不大。對oracle更沒有興趣。只是覺得這種奇技淫巧有想象力,因而有意思。就好像有人用regex(不是嚴格意義的regular expression)解決數獨問題一樣:regex匹配是np-complete問題,而數獨也是。所有從regex規約到sudoku肯定可行。於是我們為給定的數獨謎面建立一坨字串和一坨模式,用regex引擎匹配它們。字串匹配成功的充要條件是該數獨有解。

數獨(Sudoku)求解程式

數獨完全求解程式 ver 3.0 coolypf 2008 11 24 22 11 include using namespace std int matrix 9 9 數獨矩陣 int count 0 解的個數 int check int x,int y,bool mark 10 檢測matrix...

數獨 sudoku 遊戲的程式求解

9x9的正方形方格可以分成9個3 3的九宮格。數獨遊戲是在這樣的正方形中,首先事先給某些方格填入1 9的數字,然後要求在餘下的方格中也填入1 9的數字,要求每一行,每一列,以及每個九宮格中,都正好包含1 9這九個數字。解算 sudoku 的方法很多,前段時間閒的無聊我也寫了乙個。演算法很簡單,就是試...

java求解數獨(遞迴)

先來一些測試用例 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...