個人專案實戰(數獨)

_shell發表於2017-12-27

個人專案實戰

專案地址: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
個人專案實戰(數獨)
主要時間還是花費在查詢正確解上!!
個人專案實戰(數獨)
個人專案實戰(數獨)
個人專案實戰(數獨)
總結:
這次作業主要是在程式碼上話的時間比較多,因為自己程式碼能力比較弱,所以在百度上查詢了許多程式碼,進行借鑑,資料結構學的不好,有一些程式碼還不怎麼看的懂。關於這次實踐,我的程式碼只能找出一個準確結果,日後有解決辦法,會繼續改進的!

相關文章