我的挑战往往有点艰巨和缺乏吸引力。所以这里有些简单而有趣的事情。
阿尔金序列
Alcuin的序列 A(n)
是通过计算三角形来定义的。A(n)
是具有整数边和周长的三角形的数量n
。这个顺序被称为约克·阿尔库恩。
此序列的前几个元素从以下开始n = 0
:
0, 0, 0, 1, 0, 1, 1, 2, 1, 3, 2, 4, 3, 5, 4, 7, 5, 8, 7, 10, 8, ...
举例来说A(9) = 3
,因为整边和周边唯一的三角形9
是1 - 4 - 4
,3 - 3 - 3
和2 - 3 - 4
。您可以在下面看到3个有效三角形。
此序列中有一些非常有趣的模式。例如A(2*k) = A(2*k - 3)
。
挑战
但是您面临的挑战是这些数字的二进制表示形式。如果我们将每个序列号转换为二进制表示形式,然后将它们放在列向量中并排列起来,则会创建一个非常有趣的二进制图片。
在下图中,您可以看到序列号的二进制表示形式A(0), A(1), ..., A(149)
。在第一列中,您可以看到的二进制表示形式A(1)
,在第二列中,您可以看到的表示形式A(1)
,依此类推。
您可以在这张图片中看到某种重复的图案。如果您查看带有序列号的图像,它甚至看起来像分形A(600), A(601), ..., A(899)
。
您的工作是生成这样的图像。您的函数,您的脚本将接收两个整数0 <= m < n
,并且必须生成Alcuin序列的二进制图像A(m), A(m+1), A(m+2), ..., A(n-2), A(n-1)
。因此,输入0, 150
生成第一张图片,输入生成600, 900
第二张图片。
您可以使用任何所需的流行图形格式。假设每种可以使用image.online-convert.com转换为png的格式。或者,您可以在屏幕上显示图像。不允许前导白行!
这是代码高尔夫球。因此,最短的代码(以字节为单位)获胜。
white=1 and black=0
或周围的其他方式?
white=0 and black=1
。换一种方式。A(0)
产生一个白色的列,A(9)=3
产生一个底部有2个黑色像素的白色列。
0,0,0,1,0,2
而列表中的问题开始说0,0,0,1,0,1
。