所述的Sierpinski三角形是一组其通过用一个三角形起始和反复分裂的所有三角形分成四个全等三角形并除去中心三角形构造在平面上的点。右侧的Sierpinski三角形在和处有角(0,0)
,如下所示:(0,1)
(1,0)
该集合的一些等效定义如下:
n
全部针对上述过程的第t次迭代n
。(x,y)
带有0 <= x <= 1
和的点0 <= y <= 1
,对于所有正整数n
,n
x和y的二进制展开式中的th位都不都是1
。让
T = {(0,0),(1,0),(0,1)}
让
f
上套由以下定义2D点的函数:f(X) = {(0,0)} ∪ {(x+t)/2 | x∈X, t∈T}
让
S
是正方形{(x,y) | 0<=x<=1 and 0<=y<=1}
让
g(X) = S ∩ {(x+t)/2 | x∈(X), t∈T}
(T
如上定义)然后,右边的Sierpinski三角形是的最大固定点
g
。
挑战
编写一个程序或函数,该程序或函数接受4个整数,a,b,c,d
如果(a/b,c/d)
属于正确的Sierpinski三角形,则给出真实值,否则给出假值。
计分
这是代码高尔夫球。以字节为单位的最短代码获胜。
测试用例
以下是右边的Sierpinski三角形:
0 1 0 1
0 1 12345 123456
27 100 73 100
1 7 2 7
8 9 2 21
8 15 20 63
-1 -7 2 7
以下不在右侧的Sierpinski三角形中:
1 1 1 1
-1 100 1 3
1 3 1 3
1 23 1 7
4 63 3 66
58 217 4351 7577
-1 -7 3 7
是的,这是有效的输入。我添加了测试用例以使这一点变得清楚。
—
cardboard_box
-1 -3 1 1
一个有效的输入?