Wenn Sie der Meinung sind, dass dies Spaß machen könnte, aber zu viel Arbeit bedeutet, sollten Sie an dieser viel kleineren Herausforderung teilnehmen.
Ein bisschen Spaß (und möglicherweise Frust!) Für 2016 ... Dyalogs "Puzzle des Jahres" . Genießen!
Das Ziel
Suchen Sie nach Dyalog APL- Ausdrücken ( Download ) (andere Sprachen sind zulässig, siehe Berechtigung unten), die genau die Ziffern 2 0 1 6 enthalten, um den Zahlen 0 bis 100 zu entsprechen. Beispiel:
20=16
×2016
2⌊016
2+0+1*6
...
Ziel ist es, so wenig Zeichen wie möglich in jedem Ausdruck zu verwenden (die Mindestanzahl an Zeichen für einen Ausdruck beträgt 5 - die vier Ziffern 2 0 1 6 und eine einzelne Grundfunktion / einen einzelnen Operator).
Die Regeln
- Jeder Ausdruck muss die Ziffern 2 0 1 6 (in dieser Reihenfolge) und keine anderen Ziffern enthalten. Voreingestellte Konstanten und Variablen sind ebenfalls nicht erlaubt.
- Zusätzlich zu den vier Ziffern 2 0 1 6 können nur eingebaute Symbole und Namen, Klammern, Leerzeichen, hohe Minuszeichen und Dezimalstellen verwendet werden. Die resultierenden Ausdrücke müssen deterministisch sein (dh bei wiederholten Bewertungen das gleiche Ergebnis liefern). Für Nicht-APLs sind auch Funktionen / Operatoren mit einem Namen zulässig. gleiche Regeln wie hier .
- Nehmen Sie alle Standardeinstellungen für Ihre Sprache an. Für Dyalog APL, bedeutet dies ,
⎕ML
und⎕IO
sind beide 1 und⎕PP
10 ist . - Jeder Eintrag, der korrekte Ausdrücke für alle Zahlen von 0 bis einschließlich 100 enthält, wird gemäß der Anzahl der von diesen Ausdrücken verwendeten Zeichen bewertet, wobei redundante Leerzeichen ausgenommen sind (mindestens 505 für alle 101 Ausdrücke).
Teilnahmeberechtigung
Jeder kann eintreten. Sie können in jeder Sprache antworten, es werden jedoch nur APL-Antworten für die Annahme berücksichtigt. Wenn Sie eine andere Sprache als APL verwenden, können Sie Snippets, Programme, Funktionen usw. als Alternativen zu Ausdrücken verwenden und drucken, die Nummer an einem zugänglichen Speicherort belassen oder auf andere Weise das Ergebnis zurückgeben, solange Ihr Code direkt verwendet wird Wertet die gewünschte Zahl als einen beliebigen numerischen Standarddatentyp für Ihre Sprache aus.
Einsendeschluss
30. November 2016.
Preise
- Lass deine Antwort annehmen
- Lassen Sie sich in Dyalogs Hall of Fame 2016 verewigen!
Senden Sie Ihren Eintrag
Nach dem 30. November 2016 akzeptiere ich die kürzeste Antwort und reiche Ihre Antwort in Ihrem Namen in Dyalogs Ruhmeshalle 2016 ein.
FAQ
- Ist
J
(zB 37 =⌈⍟!20J16
) erlaubt? - Nein: Zusätzlich zu den vier Ziffern 2 0 1 6 können nur eingebaute Symbole und Namen, Klammern, Leerzeichen, hohe Minuszeichen und Dezimalstellen verwendet werden.
- Ist die Ausgabe als String akzeptabel?
- Nein: Entspricht den Zahlen 0 bis 100.
- Physische Ziffern oder Datenstellen?
- Datenstellen nach OP: gleiche Regeln wie hier , wo eines der Beispiele enthält
LOG10(
. - Ist die Zuweisung von Variablen dann als Teil des Ausdrucks
a+16+a←20
zulässig (z. B. 56 = )? - Ja, aber Sie dürfen keine Zuweisung von einem Ausdruck in einem anderen verwenden.
Ich habe die ausdrückliche schriftliche Erlaubnis, diese Herausforderung hier zu veröffentlichen, vom ursprünglichen Autor dieser Herausforderung. Sie können dies jederzeit überprüfen, indem Sie dem angegebenen Link folgen und den Autor kontaktieren. Ich habe dem ursprünglichen Autor des Wettbewerbs innerhalb der Minute, in der ich es gepostet habe, den Link zu dieser Seite gegeben, damit er überprüfen kann, ob ich die Antwort von jemandem als meine eigene abschicke.
⎕ML
und ⎕IO
(angenommen 1
) akzeptabel?