Vamos criar um mapeamento subjetivo simples de números inteiros positivos para números gaussianos , que são números complexos em que as partes reais e imaginárias são números inteiros.
Dado um número inteiro positivo, por exemplo 4538
, expresse-o em binário sem líderes 0
:
4538 base 10 = 1000110111010 base 2
Remova qualquer trilha 0
:
100011011101
Substitua qualquer execução de uma ou mais 0
por uma única +
:
1+11+111+1
Substitua todos 1
por i
:
i+ii+iii+i
Avalie a expressão complexa resultante e produza o número inteiro gaussiano simplificado:
i+ii+iii+i = i+i*i+i*i*i+i = 2i+i^2+i^3 = 2i+(-1)+(-i) = -1+i
A saída pode ser expressa de uma maneira matemática tradicional ou fornecida como dois números inteiros separados para as partes real e complexa. Por 4538
exemplo, qualquer um deles seria bom:
-1+i
i-1
-1+1i
(-1, 1)
-1 1
-1\n1
Para entradas como 29
, saídas de Mathy formatado como 0
, 0i
ou 0+0i
são todos muito bem.
Usar j
(ou qualquer outra coisa) em vez de i
é bom se isso for mais natural para o seu idioma.
O código mais curto em bytes vence.
4+2j
->100+10j
...