La sfida
Per questa sfida, dovresti determinare se un determinato numero è nel set Cantor. Quindi, per prima cosa, definiamo il set Cantor.
Innanzitutto, inizia con i numeri compresi tra 0 e 1. Tutti i numeri al di fuori di questo intervallo non si trovano nel set Cantor. Ora, dividiamo i numeri in tre parti uguali: [0,1 / 3], [1 / 3,2 / 3], [2/3, 1]. Tutti i numeri non compresi negli intervalli della prima e dell'ultima parte non si trovano nel set Cantor. Ora, ripeti questo processo per i segmenti [0,1 / 3] e [2/3, 1]. Quindi ripeti su ciò che resta. Continui a farlo per sempre. Alla fine, tutti i numeri rimanenti si trovano nel set Cantor. Ecco un diagramma delle prime sei iterazioni:
Ingresso
Due numeri interi x
e y
.
0 < y < 2^15
0 <= x <= y
Il massimo comune denominatore di x
ed y
è 1, a meno che x == 0
.
Produzione
Veramente se x/y
è nel set Cantor.
Falsy se x/y
non è nel set Cantor.
Esempi
Ora, vediamo alcuni esempi di numeri che si trovano nel set Cantor.
1/3 -> true
È su un confine e i confini non vengono mai rimossi.
1/4 -> true
1/4
non è mai nel terzo medio di un segmento, anche se non è mai al limite. Se segui il suo percorso, scoprirai che si alterna tra l'essere nel primo e l'ultimo terzo di una sezione.
1/13 -> true
1/13
si alterna tra la prima, la prima e l'ultima sezione.
1/5 -> false
1/5
rientra nel primo blocco vuoto della terza riga nel diagramma sopra, tra 1/9 e 2/9.
Altri casi di test:
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
Puoi provare altri numeri con questo frammento:
Obbiettivo
Vince la persona con il minor numero di byte.
x == 0