Modifica: pubblicherò presto una versione più recente di questa domanda meta-golf
. Resta tooned!
Modifica n. 2: non aggiornerò più la sfida, ma la lascerò aperta. La meta-golf
versione è disponibile qui: /codegolf/106509/obfuscated-number-golf
Sfondo:
La maggior parte dei numeri può essere scritta con solo 6 simboli diversi:
e
(Costante di Eulero)-
(Sottrazione, non negazione)^
(Esponenziale)(
)
ln
(Logaritmo naturale)
Ad esempio, potresti convertire il numero immaginario i
usando questa equazione:
(e-e-e^(e-e))^(e^(e-e-ln(e^(e-e)-(e-e-e^(e-e)))))
Obbiettivo:
Dato un numero intero k
con qualsiasi mezzo ragionevole, genera la rappresentazione più breve possibile di quel numero usando solo quei 6 simboli.
Esempi:
0 => "e-e"
1 => "ln(e)"
2 => "ln(ee)"
// Since - cannot be used for negation, this is not a valid solution:
// ln(e)-(-ln(e))
-1 => "e-e-ln(e)"
Appunti:
- Le parentesi finali contano per la quantità totale di caratteri.
ln(
conta solo 1 carattere.- Tutto il resto conta come 1 carattere.
n^0=1
- Si applica l'ordine delle operazioni
- Parentesi moltiplicando è accettabile, ad esempio
(2)(8)=16
,2(5)=10
eeln(e)=e
. ln e
non è valido, devi farloln(e)
ln(eeee)^ln(ee)
è più corto di ln(eeeeeeeeeeeeeeee)
per 16
ln(ee...e)
) sia il modo migliore per ritrarre i positivi. Modifica: no, non lo è.ln(e^(ln(eeeee)ln(eeee)))
è meglio per 20