Wyzwanie
W przypadku tego wyzwania należy ustalić, czy dana liczba znajduje się w zestawie Cantor. Najpierw zdefiniujmy zestaw Cantora.
Najpierw zacznij od liczb od 0 do 1. Żadnych liczb poza tym zakresem nie ma w zestawie Cantor. Teraz podzielmy liczby na trzy równe części: [0,1 / 3], [1 / 3,2 / 3], [2/3, 1]. Wszelkie liczby spoza zakresu pierwszej i ostatniej części nie znajdują się w zestawie Cantor. Teraz powtórz ten proces dla segmentów [0,1 / 3] i [2/3, 1]. Następnie powtarzasz to, co zostało. Robisz to zawsze. Na koniec wszystkie pozostałe liczby znajdują się w zestawie Cantor. Oto schemat pierwszych sześciu iteracji:
Wejście
Dwie liczby całkowite x
i y
.
0 < y < 2^15
0 <= x <= y
Największym wspólnym mianownikiem x
i y
jest 1, chyba że x == 0
.
Wynik
Prawda, jeśli x/y
jest w zestawie Cantor.
Falsy, jeśli x/y
nie ma go w zestawie Cantor.
Przykłady
Zobaczmy teraz kilka przykładów liczb, które są w zestawie Cantor.
1/3 -> true
Jest na granicy, a granice nigdy nie są usuwane.
1/4 -> true
1/4
nigdy nie znajduje się w środkowej trzeciej części segmentu, chociaż nigdy nie znajduje się na granicy. Jeśli podążasz jego ścieżką, zobaczysz, że na przemian znajduje się ona w pierwszej i ostatniej trzeciej części sekcji.
1/13 -> true
1/13
na przemian między pierwszą, pierwszą i ostatnią sekcją.
1/5 -> false
1/5
wpada do pierwszego pustego bloku trzeciego rzędu na powyższym schemacie, między 1/9 a 2/9.
Inne przypadki testowe:
0/4 -> true
3/10 -> true
3/4 -> true
10/13 -> true
1/1 -> true
12/19 -> false
5/17 -> false
3/5 -> false
1/7 -> false
1/2 -> false
Za pomocą tego fragmentu możesz wypróbować inne liczby:
Cel
Osoba z najmniejszą liczbą bajtów wygrywa.
x == 0