シェルピンスキーの三角形は、単一の三角形で始まる繰り返し4つの合同な三角形にすべての三角形を分割し、中央の三角形を除去することによって構築される平面上の点の集合です。右のシェルピンスキー三角形には(0,0)
、(0,1)
と(1,0)
に角があり、次のようになります。
このセットの同等の定義は次のとおりです。
n
すべてのについて、上記のプロセスのth番目の反復のポイントn
。点
(x,y)
と0 <= x <= 1
し、0 <= y <= 1
すべての正の整数のようにn
、n
xのバイナリ膨張番目のビットとYの両方ではありません1
。しましょう
T = {(0,0),(1,0),(0,1)}
を
f
次のように定義された2Dポイントのセットの関数とします。f(X) = {(0,0)} ∪ {(x+t)/2 | x∈X, t∈T}
右シェルピンスキーの三角形は、トポロジカルクロージャの最小不動点の(セット封じ込めによって)
f
。S
正方形にしよう{(x,y) | 0<=x<=1 and 0<=y<=1}
Let
g(X) = S ∩ {(x+t)/2 | x∈(X), t∈T}
(T
上記は上で定義したとおり)次に、右のシェルピンスキー三角形がの最大の不動点です
g
。
チャレンジ
4つの整数を受け入れa,b,c,d
、正しいシェル(a/b,c/d)
ピンスキー三角形に属している場合は真の値を与え、そうでない場合は偽の値を与えるプログラムまたは関数を記述します。
得点
これはコードゴルフです。バイト単位の最短コードが優先されます。
テストケース
以下は、シェルピンスキー三角形の右側にあります。
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
以下は、シェルピンスキー三角形の右側にありません:
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
-1 -3 1 1
有効な入力?