作者Game73 (艾草)
看板puzzle
标题Re: [问题] 数读的出题方法
时间Fri Apr 11 20:39:08 2008
※ 引述《bobbob (bobbob)》之铭言:
: 想请问ㄧ下...我们平常都是做别人出好题目的数读...
: 那如果我们自己想出题目的话...请问有啥需要注意的吗??
: 首先应该是先想好解答...然後再逐步将一些解答拿掉以变成题目吧...
: 那如何得知拿掉哪些格子不会影响解答又可以将最後的答案解出来呢??
: 不知道我这样叙诉大家看的懂吗??
我之前写程式是用跟你相反的作法
先随机填20个格子 (因为有人研究一个题目至少要17个,有没有更少的不知道)
(之间当然要确定这20个填完之後盘面还是合法的)
在第21个开始也是随机填 , 每填完一格检查有没有多重解
检查的方法就是用暴搜+删去法
因为暴搜可以知道题目有没有解
用删去法可能会有唯一解或卡住(no sol)
先暴搜可过以後再丢给删去法解
若可解题目就会有唯一解了
遇到无解或多重解则有各自的作法不赘述
之前跟同学讨论 这样做可能会有点慢
但"填"比"拔"好的地方是可以创造新的题目
而且如果只是9*9不会太慢 要到16*16才真的需要想别的方法
--
http://blog.yam.com/akqj10
我的 地狱X生活X喜乐
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.54.137
1F:→ zonw:删去法会no sol @@? 04/11 21:08
2F:推 rehearttw:sudoku 程式可以检查有几种解,不过只有 9x9 格 04/11 22:04
3F:→ rehearttw:应该是 Simple Sudoku 程式 04/11 22:05
4F:推 icespeech:哇....这演算法看起来真的很慢 04/11 22:38
5F:推 brianjim:出数独比解数独难很多倍……我试过了 orz 04/11 22:58
6F:→ Game73:会NO SOL 就是填什麽都不对 04/12 03:02
7F:推 zonw:喔喔 我看懂了XD 一开始以为前一个人的作法叫删去法 04/12 09:19