數讀的出題方法 - 拼圖

Table of Contents

※ 引述《bobbob (bobbob)》之銘言:
: 想請問ㄧ下...我們平常都是做別人出好題目的數讀...
: 那如果我們自己想出題目的話...請問有啥需要注意的嗎??
: 首先應該是先想好解答...然後再逐步將一些解答拿掉以變成題目吧...
: 那如何得知拿掉哪些格子不會影響解答又可以將最後的答案解出來呢??
: 不知道我這樣敘訴大家看的懂嗎??

我之前寫程式是用跟你相反的作法

先隨機填20個格子 (因為有人研究一個題目至少要17個,有沒有更少的不知道)
(之間當然要確定這20個填完之後盤面還是合法的)

在第21個開始也是隨機填 , 每填完一格檢查有沒有多重解

檢查的方法就是用暴搜+刪去法

因為暴搜可以知道題目有沒有解

用刪去法可能會有唯一解或卡住(no sol)

先暴搜可過以後再丟給刪去法解

若可解題目就會有唯一解了

遇到無解或多重解則有各自的作法不贅述

之前跟同學討論 這樣做可能會有點慢

但"填"比"拔"好的地方是可以創造新的題目

而且如果只是9*9不會太慢 要到16*16才真的需要想別的方法

--

http://blog.yam.com/akqj10
我的 地獄X生活X喜樂

--

All Comments

Queena avatarQueena2008-04-16
刪去法會no sol @@?
Gary avatarGary2008-04-19
sudoku 程式可以檢查有幾種解,不過只有 9x9 格
Odelette avatarOdelette2008-04-19
應該是 Simple Sudoku 程式
Eden avatarEden2008-04-21
哇....這演算法看起來真的很慢
Agatha avatarAgatha2008-04-25
出數獨比解數獨難很多倍……我試過了 orz
Ursula avatarUrsula2008-04-27
會NO SOL 就是填什麼都不對
Yuri avatarYuri2008-04-28
喔喔 我看懂了XD 一開始以為前一個人的作法叫刪去法