O desafio
Para esse desafio, você deve determinar se um determinado número está no conjunto Cantor. Então, primeiro, vamos definir o conjunto Cantor.
Primeiro, comece com os números entre 0 e 1. Quaisquer números fora desse intervalo não estão no conjunto Cantor. Agora, vamos dividir os números em três partes iguais: [0,1 / 3], [1 / 3,2 / 3], [2/3, 1]. Quaisquer números fora dos intervalos da primeira e da última parte não estão no conjunto Cantor. Agora, repita esse processo para os segmentos [0,1 / 3] e [2/3, 1]. Então você repete o que resta. Você continua fazendo isso para sempre. No final, todos os números restantes estão no conjunto Cantor. Aqui está um diagrama das seis primeiras iterações:
Entrada
Dois inteiros x
e y
.
0 < y < 2^15
0 <= x <= y
O maior denominador comum de x
e y
é 1, a menos que x == 0
.
Saída
Verdadeiramente se x/y
estiver no conjunto Cantor.
Falsy se x/y
não estiver no conjunto Cantor.
Exemplos
Agora, vamos ver alguns exemplos de números que estão no conjunto Cantor.
1/3 -> true
Está em um limite, e os limites nunca são removidos.
1/4 -> true
1/4
nunca está no terço médio de um segmento, embora também nunca esteja no limite. Se você seguir o caminho, descobrirá que ele alterna entre estar no primeiro e no último terço de uma seção.
1/13 -> true
1/13
alterna entre a primeira, a primeira e a última seção.
1/5 -> false
1/5
cai no primeiro bloco vazio da terceira linha no diagrama acima, entre 1/9 e 2/9.
Outros casos de teste:
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
Você pode tentar outros números com este trecho:
Objetivo
A pessoa com menos bytes vence.
x == 0