Creiamo una mappatura semplice e suriettiva da numeri interi positivi a numeri interi gaussiani , che sono numeri complessi in cui le parti reali e immaginarie sono numeri interi.
Dato un numero intero positivo, ad esempio 4538, esprimilo in binario senza nessun carattere iniziale 0:
4538 base 10 = 1000110111010 base 2
Rimuovi eventuali tracce 0:
100011011101
Sostituisci tutte le esecuzioni di uno o più 0con una singola +:
1+11+111+1
Sostituisci tutto 1con i:
i+ii+iii+i
Valuta l'espressione complessa risultante e visualizza l'intero intero gaussiano semplificato:
i+ii+iii+i = i+i*i+i*i*i+i = 2i+i^2+i^3 = 2i+(-1)+(-i) = -1+i
L'output può essere espresso in un modo matematico tradizionale o dato come due numeri interi separati per le parti reali e complesse. Per l' 4538esempio, uno di questi andrebbe bene:
-1+i
i-1
-1+1i
(-1, 1)
-1 1
-1\n1
Per gli ingressi come 29, uscite Mathy formattati come 0, 0io 0+0isono tutti bene.
Usare j(o qualcos'altro) invece di iva bene se è più naturale per la tua lingua.
Vince il codice più breve in byte.
4+2j->100+10j...