挑战:
给定Sudoku开发板的标准输入,找到添加的最小数量以使开发板唯一。
具体/规则:
输入的格式如下(所有空格均有效)
516|827|943 278|394|615 349|615|872 ---+---+--- 98 |4 2|156 465|189|237 12 |5 6|489 ---+---+--- 892|743|561 634|951|728 751|268|394
输出的格式为每行一个数字,格式如
(x,y):z
-x和y从左上角的一个开始,然后向下和向右递增;z是要加的数字。- 在这种情况下,这些都将是有效的输出:
(3,4):3
,(3,4):7
,(5,4):3
,(5,4):7
,(3,6):3
,(3,6):7
,(5,6):3
,和(5,6):7
,如其中任何一项将允许板来解决。
- 在这种情况下,这些都将是有效的输出:
- 如果输入了唯一/已解决的Sudoku开发板,则该程序不应打印任何内容,甚至不能换行。
- 该程序对于任何开发板都应在不到一个小时的时间内运行(我建议使用完全空白的开发板或上面带有一个随机数字的开发板进行测试...)。
得分:
- 以字符为单位的总(行进)代码大小,包括所有空格 ...
奖金:
1/2代码大小:如果程序只打印一个感叹号,并且在没有输入解决方案的电路板时停止。
1/2代码大小:如果程序打印两个感叹号并在输入内部矛盾的木板时停止(两个数字在同一行/列/正方形上相同)。
3
无聊且可能很困难:(
—
Oleh Prypin 2011年
嘘 GolfScript排除了“什么都不打印,甚至没有换行符”。
—
彼得·泰勒
为此,需要一个永远不需要回溯/猜测完整解决方案的数独解算器(并且每次需要输出“猜测”时)
—
棘轮怪胎
我看不出拒绝此票的理由。为了显示一个漂亮的难题,我们付出了很多努力。这是非常清楚的,并且正确地陈述了。对于我来说,太大了,但是出于主观原因,太主观了,不是吗?
—
用户未知,