Re: [問題] 數獨的出題方法

看板puzzle (益智遊戲 - 數獨,拼圖,推理,西洋棋)作者 (小億)時間17年前 (2008/04/12 00:39), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《Game73 (艾草)》之銘言: : ※ 引述《bobbob (bobbob)》之銘言: : : 想請問ㄧ下...我們平常都是做別人出好題目的數讀... : : 那如果我們自己想出題目的話...請問有啥需要注意的嗎?? : : 首先應該是先想好解答...然後再逐步將一些解答拿掉以變成題目吧... : : 那如何得知拿掉哪些格子不會影響解答又可以將最後的答案解出來呢?? : : 不知道我這樣敘訴大家看的懂嗎?? : 我之前寫程式是用跟你相反的作法 : 先隨機填20個格子 (因為有人研究一個題目至少要17個,有沒有更少的不知道) 聽說17個是不對稱狀態~ : (之間當然要確定這20個填完之後盤面還是合法的) : 在第21個開始也是隨機填 , 每填完一格檢查有沒有多重解 : 檢查的方法就是用暴搜+刪去法 : 因為暴搜可以知道題目有沒有解 : 用刪去法可能會有唯一解或卡住(no sol) : 先暴搜可過以後再丟給刪去法解 : 若可解題目就會有唯一解了 : 遇到無解或多重解則有各自的作法不贅述 : 之前跟同學討論 這樣做可能會有點慢 : 但"填"比"拔"好的地方是可以創造新的題目 : 而且如果只是9*9不會太慢 要到16*16才真的需要想別的方法 最笨的方法...也是隨機填20個~再慢慢找出其他答案~ 多重解(就是最後還有空格),就會把原題型加上缺的數字~~ 無解:先考慮是否自己解錯...(暴淚 & 累)...真的無解... 通常我會試著把2(含)個以上的數字換位子... OK或多重解就進行逆推驗算:把它完成! 不OK該如何?我通常會留下6欄54個數字,再把最後3欄完成~ (因為我出的飛馬/騎士數獨,數字的位子會影響很大,至少要重修2題~~) 畢竟手工數獨是很花時間的~簡單的完成品比失敗的難題有價值~ (出了快50題數獨了,弄個小冊子玩玩~~) 真的要出16*16或25*25... 我可能會考慮用排序法出... 像這樣... 1234,5678,9ABC,DEFG 9ACB,GFED,8567,4312 當然會在之後的位子再改變順序... 出題不難~難在把它完成...而且希望它夠水準~~ -- "奧坎氏簡化論" -- "解決問題最好的方法 ; 幾乎總是最簡單的方法 " 1.我們離財富自由 , 只差一個好構想 , 及一個 "關鍵人物" 2.實際上,你開始的時候只需要三種資源 : 好點子 , 實現好點子的決心 , 和擁有其他所有資源的重要人脈. 你應該奉行這個座右銘 :我現在需要的每一種有形或無形資產 , 都掌握在某個地方的某些人手裡 , 我要如何找到這些人 , 說服他們提供我這些資源 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.208.117
文章代碼(AID): #17_vGkIN (puzzle)
討論串 (同標題文章)
文章代碼(AID): #17_vGkIN (puzzle)