個人專案實戰
專案地址:https://github.com/kddll/soduku
作業地址
https://edu.cnblogs.com/campus/fzu/SoftwareEngineering2015/homework/859
Documents
專案需求
利用程式隨機構造出N個已解答的數獨棋盤 。
程式語言:C++
程式設計IDE:推薦使用Visual Studio 2017
原始碼管理平臺:Github解題思路:
剛開始做這道題的時候,完全不知道該怎麼下手,百度上大都使用回溯法來做,因為沒什麼思路,所以,我就用回溯法和隨機排列的方法來解決,但是因為演算法比較不好,所以目前只寫出了一個解。
思路是:建立一個二維陣列,確定第一個陣列的值,然後第一行利用隨機排列,從第二行開始搜尋符合條件的結果。搜尋過程:寫一個判斷函式,引數為陣列下標。1.i,j處是否可以存資料(下標大於9就不符合題目要求了)2.判斷同一行,同一列,一個小的九宮格是否有出現相同的數字,如果有,則不能填入,沒有就可以填入。
主要程式碼
測試
效能分析
設定n為200
主要時間還是花費在查詢正確解上!!
總結:
這次作業主要是在程式碼上話的時間比較多,因為自己程式碼能力比較弱,所以在百度上查詢了許多程式碼,進行借鑑,資料結構學的不好,有一些程式碼還不怎麼看的懂。關於這次實踐,我的程式碼只能找出一個準確結果,日後有解決辦法,會繼續改進的!