Bearbeiten: Ich werde in Kürze eine neuere Version dieser Frage veröffentlichen meta-golf
. Bleib auf dem Laufenden!
Bearbeiten # 2: Ich werde die Herausforderung nicht mehr aktualisieren, aber offen lassen. Die meta-golf
Version ist hier verfügbar: /codegolf/106509/obfuscated-number-golf
Hintergrund:
Die meisten Zahlen können mit nur 6 verschiedenen Symbolen geschrieben werden:
e
(Eulers Konstante)-
(Subtraktion, nicht Negation)^
(Potenzierung)(
)
ln
(Natürlicher Logarithmus)
Beispielsweise könnten Sie die imaginäre Zahl i
mithilfe der folgenden Gleichung konvertieren :
(e-e-e^(e-e))^(e^(e-e-ln(e^(e-e)-(e-e-e^(e-e)))))
Tor:
Ausgeben k
der kürzestmöglichen Darstellung dieser Zahl unter Verwendung nur dieser 6 Symbole, wenn eine Ganzzahl mit einem vernünftigen Mittel angegeben wird.
Beispiele:
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)"
Anmerkungen:
- Endeklammern werden auf die Gesamtzahl der Zeichen angerechnet.
ln(
zählt nur als 1 Zeichen.- Alles andere zählt als 1 Charakter.
n^0=1
- Es gilt die Reihenfolge der Operationen
- Parenthesis Vervielfachungs akzeptabel ist , zum Beispiel
(2)(8)=16
,2(5)=10
, undeln(e)=e
. ln e
ist nicht gültig, müssen Sie tunln(e)
code-golf
math
number
number-theory
Julian Lachniet
quelle
quelle
ln(ee...e)
) der beste Weg ist, um Positive darzustellen. Edit: nein, es ist nicht.ln(e^(ln(eeeee)ln(eeee)))
ist besser für 20ln(eeee)^ln(ee)
ist kürzer alsln(eeeeeeeeeeeeeeee)
für 16Antworten:
Python 3, 402 Bytes
Anwendungsbeispiel:
Beachten Sie, dass das Ausgabeformat es möglicherweise nicht widerspiegelt, der Code jedoch alle Längen gemäß den Angaben der Frage korrekt zählt.
Dies ist eine dumme rohe Kraft durch alle möglichen Längen von Saiten. Dann benutze ich einige Ersetzungen, damit Python es auswerten kann. Wenn es dem entspricht, was wir wollen, schließe ich auch unäre negative Vorzeichen durch Überprüfen des AST aus.
Ich kann nicht sehr gut in Python Golf spielen, also hier ist der Code, wenn jemand helfen möchte!
quelle