论坛首页 综合技术论坛

来玩数独吧,抛砖引玉

浏览 24614 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-07-05  
数独有难易程度之分,一般是先求出一个解,然后去掉其中一部分出题,Readonly说的意思是,这样来做题,只有一个解。
PS: 我觉得上面的程序给出解答的速度已经很快了,用回溯法,是不是就到头了呢?
0 请登录后投票
   发表时间:2007-07-24  
想请问一下Readonly:“$*.<<”这个是什么意思啊……
0 请登录后投票
   发表时间:2007-07-24  
ruby quiz里面有一个soduku的题目
0 请登录后投票
   发表时间:2007-07-24  
Readonly 写道
老庄,动态语言不是这样写的,你这完全就是披着ruby外衣的java...

其他偶也不多说了,转一行ruby的数独解法代码:
$*.map{|a|(i=a=~/0/)?(v=*?1..?9).fill{|j|v-=[a[j+i-k=i%9],a[k+j*=9],a[j%26+i-i%3-i%27+k]]}+v.map{|k|$*.<<$`<<k<<$'}:p(a)}

将这行代码保存为sudoku.rb,接受的数独题目为从左到右,从上到下的一行字符串(0代表空位),运行:
ruby sudoku.rb 200370009009200007001004002050000800008000900006000040900100500800007600400089001
得出答案:
"284375169639218457571964382152496873348752916796831245967143528813527694425689731"


这样的东西也好叫代码么?
0 请登录后投票
   发表时间:2007-09-17  
刚接触数读,感觉满有意思的,感觉每一步都靠推算能出来的题设计起来好有难度ki
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics