Edit: je publierai bientôt une version plus récente de cette question meta-golf
. Restez sage!
Edit # 2: Je ne mettrai plus à jour le défi, mais le laisserai ouvert. La meta-golf
version est disponible ici: /codegolf/106509/obfuscated-number-golf
Contexte:
La plupart des nombres peuvent être écrits avec seulement 6 symboles différents:
e
(Constante d'Euler)-
(Soustraction, pas négation)^
(Exponentiation)(
)
ln
(Un algorithme naturel)
Par exemple, vous pouvez convertir le nombre imaginaire en i
utilisant cette équation:
(e-e-e^(e-e))^(e^(e-e-ln(e^(e-e)-(e-e-e^(e-e)))))
Objectif:
Étant donné n'importe quel entier k
par tout moyen raisonnable, affichez la représentation la plus courte possible de ce nombre en utilisant uniquement ces 6 symboles.
Exemples:
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)"
Remarques:
- Les parenthèses de fin comptent pour le nombre total de caractères.
ln(
ne compte que pour 1 caractère.- Tout le reste compte pour 1 caractère.
n^0=1
- L'ordre des opérations s'applique
- Parenthesis multiplication est acceptable, par exemple
(2)(8)=16
,2(5)=10
eteln(e)=e
. ln e
n'est pas valide, vous devez faireln(e)
ln(eeee)^ln(ee)
est plus court que ln(eeeeeeeeeeeeeeee)
pour le 16
ln(ee...e)
) est la meilleure façon de représenter les points positifs. Edit: non, ce n'est pas.ln(e^(ln(eeeee)ln(eeee)))
est mieux pour 20