Il triangolo Sierpinski è un insieme di punti sul piano che viene costruito partendo da un singolo triangolo e dividendo ripetutamente tutti i triangoli in quattro triangoli congruenti e rimuovendo il triangolo centrale. Il triangolo di Sierpinski destra ha angoli a (0,0), (0,1)e (1,0), e si presenta così:

Alcune definizioni equivalenti di questo set sono le seguenti:
Punti nella
niterazione del processo sopra descritto, per tuttin.Punti
(x,y)con0 <= x <= 1e0 <= y <= 1tali che per tutti i numeri interi positivin, ilnbit th nell'espansione binaria di xey non sono entrambi1.Permettere
T = {(0,0),(1,0),(0,1)}Sia
funa funzione su insiemi di punti 2D definiti da quanto segue:f(X) = {(0,0)} ∪ {(x+t)/2 | x∈X, t∈T}Quindi il triangolo Sierpinski destro è la chiusura topologica del punto meno fisso (per set contenimento) di
f.Lascia che
Ssia il quadrato{(x,y) | 0<=x<=1 and 0<=y<=1}Let
g(X) = S ∩ {(x+t)/2 | x∈(X), t∈T}(doveTè come sopra definito)Quindi il triangolo Sierpinski destro è il più grande punto fisso di
g.
Sfida
Scrivi un programma o una funzione che accetta 4 numeri interi a,b,c,de fornisce un valore di verità se (a/b,c/d)appartiene al triangolo Sierpinski destro, e in caso contrario fornisce un valore di falsa.
punteggio
Questo è un codice golf. Vince il codice più breve in byte.
Casi test
I seguenti sono nel triangolo Sierpinski destro:
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
Quanto segue non è nel triangolo Sierpinski giusto:
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 1un input valido?