考虑标准等边三角形,其节点使用重心坐标标记:
我们可以通过添加3个顶点的新线(比原来的3节点三角形的一侧多一个),将3节点三角形变成6节点三角形,删除任何内部边缘(但不包括内部节点),然后重新标准化坐标:
重复此过程,从6个节点的三角形变为10个节点的三角形,添加一行4个顶点(同样,比原始6个节点三角形的一侧多一个),删除所有内部边缘(但不包括内部节点) )并重新标准化坐标:
此过程可以无限期重复。挑战的目标是给一个整数,N
代表执行此过程的次数,并在重心坐标中输出关联三角形的所有节点。
输入值
您的程序/函数应采用一个非负整数作为输入,该整数N
代表已应用此过程的次数。请注意,对于N=0
,您应该输出具有3个节点的原始三角形。
输入可以来自任何来源(功能参数,标准输入输出等)。
输出量
您的程序/函数应以归一化的重心坐标输出所有节点。节点的顺序无关紧要。可以将数字指定为分数(不需要减少分数)或浮点数。您也可以输出“缩放”向量来指定节点。例如,以下所有3个输出都是等效的并被允许:
0.5,0.5,0
1/2,2/4,0
[1,1,0]/2
如果使用浮点输出,则您的输出应精确到1%以内。输出可以是所需的任何接收器(stdio,返回值,返回参数等)。请注意,即使重心坐标唯一地由每个节点2个数字确定,您也应该输出每个节点所有3个数字。
例子
示例案例的格式为:
N
x0,y0,z0
x1,y1,z1
x2,y2,z2
...
其中第一行是input N
,所有随后的行形成一个节点x,y,z
,该节点应在输出中恰好一次。所有数字均以近似浮点数形式给出。
0
1,0,0
0,1,0
0,0,1
1
1,0,0
0,1,0
0,0,1
0.5,0,0.5
0.5,0.5,0
0,0.5,0.5
2
1,0,0
0,1,0
0,0,1
0.667,0,0.333
0.667,0.333,0
0.333,0,0.667
0.333,0.333,0.333
0.333,0.667,0
0,0.333,0.667
0,0.667,0.333
3
1,0,0
0.75,0,0.25
0.75,0.25,0
0.5,0,0.5
0.5,0.25,0.25
0.5,0.5,0
0.25,0,0.75
0.25,0.25,0.5
0.25,0.5,0.25
0.25,0.75,0
0,0,1
0,0.25,0.75
0,0.5,0.5
0,0.75,0.25
0,1,0
计分
这是代码高尔夫;以字节为单位的最短代码获胜。有标准漏洞。您可以使用所需的任何内置功能。
[1,2,3]/6
?