El reto
Para este desafío, se supone que debes determinar si un número dado está en el conjunto de Cantor. Primero, definamos el conjunto de Cantor.
Primero, comience con los números entre 0 y 1. Cualquier número fuera de este rango no está en el conjunto de Cantor. Ahora, dividamos los números en tres partes iguales: [0,1 / 3], [1 / 3,2 / 3], [2/3, 1]. Cualquier número que no esté dentro de los rangos de la primera y última parte no está en el conjunto de Cantor. Ahora, repite este proceso para los segmentos [0,1 / 3] y [2/3, 1]. Luego repites lo que sobra. Sigues haciendo esto para siempre. Al final, todos los números restantes están en el conjunto de Cantor. Aquí hay un diagrama de las primeras seis iteraciones:
Entrada
Dos enteros x
y y
.
0 < y < 2^15
0 <= x <= y
El máximo común denominador de x
y y
es 1, a menos que x == 0
.
Salida
Verdad si x/y
está en el conjunto de Cantor.
Falsy si x/y
no está en el conjunto de Cantor.
Ejemplos
Ahora, veamos algunos ejemplos de números que están en el conjunto de Cantor.
1/3 -> true
Está en un límite, y los límites nunca se eliminan.
1/4 -> true
1/4
nunca está en el tercio medio de un segmento, aunque tampoco está en el límite tampoco. Si sigues su camino, en realidad encontrarás que alterna entre estar en el primer y último tercio de una sección.
1/13 -> true
1/13
alterna entre la primera, primera y última sección.
1/5 -> false
1/5
cae en el primer bloque vacío de la tercera fila en el diagrama anterior, entre 1/9 y 2/9.
Otros casos de prueba:
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
Puedes probar otros números con este fragmento:
Objetivo
La persona con menos bytes gana.
x == 0