項目地址:https://github.com/kddll/sodukugit
做業地址github
https://edu.cnblogs.com/campus/fzu/SoftwareEngineering2015/homework/859算法
項目需求編程
利用程序隨機構造出N個已解答的數獨棋盤 。
編程語言:C++
編程IDE:推薦使用Visual Studio 2017
源代碼管理平臺:Github數組
解題思路:
剛開始作這道題的時候,徹底不知道該怎麼下手,百度上大都使用回溯法來作,由於沒什麼思路,因此,我就用回溯法和隨機排列的方法來解決,可是由於算法比較很差,因此目前只寫出了一個解。
思路是:創建一個二維數組,肯定第一個數組的值,而後第一行利用隨機排列,從第二行開始搜索符合條件的結果。搜索過程:寫一個判斷函數,參數爲數組下標。1.i,j處是否能夠存數據(下標大於9就不符合題目要求了)2.判斷同一行,同一列,一個小的九宮格是否有出現相同的數字,若是有,則不能填入,沒有就能夠填入。數據結構
主要代碼
編程語言
測試
函數
效能分析
設定n爲200
主要時間仍是花費在查找正確解上!!
總結:
此次做業主要是在代碼上話的時間比較多,由於本身代碼能力比較弱,因此在百度上查找了許多代碼,進行借鑑,數據結構學的很差,有一些代碼還不怎麼看的懂。關於此次實踐,個人代碼只能找出一個準確結果,往後有解決辦法,會繼續改進的!測試