对于N x N的图像,请找到一组像素,以使不存在超过一次的分隔距离。也就是说,如果两个像素被隔开一定距离d,则它们是由恰好分离的仅两个像素ð(使用欧几里德距离)。注意,d不必是整数。
面临的挑战是要找到比其他任何人都更大的此类集合。
规格
无需输入-对于该竞赛,N固定为619。
(由于人们一直在问-数字619并没有什么特别之处。选择它的大小足够大,不可能提供最佳解决方案,而它又足够小,可以显示N by N图像,而Stack Exchange不会自动缩小该图像。显示的最大尺寸为630 x 630,因此我决定使用最大的质数,但不要超过该值。)
输出是用空格分隔的整数列表。
输出中的每个整数代表一个像素,以英语阅读顺序从0开始编号。例如,对于N = 3,位置将按以下顺序编号:
0 1 2
3 4 5
6 7 8
您可以根据需要在跑步过程中输出进度信息,只要可以轻松获得最终得分结果即可。您可以输出到STDOUT或文件,也可以输出到最容易粘贴到下面的堆栈代码判断中的任何内容。
例
N = 3
选择的坐标:
(0,0)
(1,0)
(2,1)
输出:
0 1 5
获奖
分数是输出中位置的数量。在那些得分最高的有效答案中,最早的发布该得分的答案将获胜。
您的代码不必是确定性的。您可以发布最佳输出。
相关研究领域
(感谢Abulafia的Golomb链接)
尽管这两个问题都不相同,但是它们在概念上都相似,并且可能为您提供解决方法的思路:
请注意,此问题所需的点不受与Golomb矩形相同的要求。通过要求从每个点到另一个的向量是唯一的,Golomb矩形从1维情况开始延伸。这意味着可以有两个点在水平方向上隔开2个距离,也可以在两个点之间垂直隔开2个距离。
对于此问题,标量距离必须唯一,因此水平间距和垂直间距都不能为2。此问题的每个解决方案都是一个Golomb矩形,但并非每个Golomb矩形都是一个有效的解这个问题。
上限
丹尼斯在聊天中很有帮助地指出 487是该分数的上限,并提供了一个证明:
根据我的CJam代码(
619,2m*{2f#:+}%_&,
),有118800个唯一数字可以写为0到618之间的两个整数的平方和(包括两端值)。n个像素彼此之间需要n(n-1)/ 2个唯一的距离。对于n = 488,得出118828。
因此,图像中所有潜在像素之间可能有118,800个可能的不同长度,而放置488个黑色像素将导致118,828个长度,这使得它们不可能都是唯一的。
我很想知道是否有人能证明下限比这个更低。
排行榜
(每个用户的最佳答案)