Herausforderung
Geben Sie bei einer (Gleitkomma- / Dezimal-) Zahl den Kehrwert zurück, dh 1 geteilt durch die Zahl. Die Ausgabe muss eine Gleitkomma- / Dezimalzahl sein, nicht nur eine Ganzzahl.
Detaillierte Spezifikation
- Sie müssen eine Eingabe in Form einer Gleitkomma- / Dezimalzahl erhalten ...
- ... mit mindestens 4 signifikanten Stellen Genauigkeit (falls erforderlich).
- Mehr ist besser, zählt aber nicht in der Punktzahl.
- Sie müssen mit jeder akzeptablen Ausgabemethode ausgeben ...
- ... der Kehrwert der Zahl.
- Dies kann als 1 / x, x & supmin; ¹ definiert werden.
- Sie müssen mit mindestens 4 signifikanten Stellen Genauigkeit ausgeben (falls erforderlich).
Die Eingabe erfolgt positiv oder negativ mit einem absoluten Wert im Bereich [0,0001, 9999]. Sie erhalten niemals mehr als 4 Stellen nach dem Dezimalpunkt oder mehr als 4 ab der ersten Stelle ungleich Null. Die Ausgabe muss bis zur 4. Stelle von der ersten Stelle ungleich Null genau sein.
(Danke @MartinEnder)
Hier sind einige Beispieleingaben:
0.5134
0.5
2
2.0
0.2
51.2
113.7
1.337
-2.533
-244.1
-0.1
-5
Beachten Sie, dass Sie niemals Eingaben mit einer Genauigkeit von mehr als 4 Stellen erhalten.
Hier ist eine Beispielfunktion in Ruby:
def reciprocal(i)
return 1.0 / i
end
Regeln
- Alle akzeptierten Ausgabeformen sind zulässig
- Standardlücken verboten
- Dies ist Code-Golf , die kürzeste Antwort in Bytes gewinnt, wird aber nicht ausgewählt.
Klarstellungen
- Sie werden nie die Eingabe erhalten
0
.
Kopfgelder
Diese Herausforderung ist in den meisten Sprachen offensichtlich trivial, kann jedoch in esoterischen und ungewöhnlichen Sprachen eine unterhaltsame Herausforderung darstellen. Einige Benutzer sind daher bereit, Punkte dafür zu vergeben, dass dies in ungewöhnlich schwierigen Sprachen durchgeführt wird.
@DJMcMayhem wird eine Prämie von +150 Punkten für die kürzeste Brain-Flak-Antwort vergeben, da Brain-Flak für Gleitkommazahlen notorisch schwierig ist@ L3viathan vergibt eine Prämie von +150 Punkten für die kürzeste OIL- Antwort. OIL hat weder einen nativen Gleitkommatyp noch eine Division.
@Riley wird eine Prämie von +100 Punkten für die kürzeste Antwort vergeben.
@EriktheOutgolfer wird die kürzeste Sesos-Antwort mit +100 Punkten belohnen. Die Aufteilung in Brainfuck-Derivate wie Sesos ist sehr schwierig, geschweige denn die Gleitkommadivision.
Ich ( @Mendeleev ) werde eine Prämie von +100 Punkten für die kürzeste Retina-Antwort vergeben.
Wenn es eine Sprache gibt, von der Sie glauben, dass es Spaß macht, eine Antwort in zu sehen, und Sie bereit sind, den Repräsentanten zu bezahlen, können Sie Ihren Namen in diese Liste aufnehmen (sortiert nach Kopfgeldbetrag).
Bestenliste
Hier ist ein Stack-Snippet, um eine Übersicht der Gewinner nach Sprache zu generieren.
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
# Language Name, N bytes
Wo N
ist die Größe Ihres Beitrags? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Wenn Sie mehrere Zahlen in Ihre Kopfzeile aufnehmen möchten (z. B. weil Ihre Punktzahl die Summe von zwei Dateien ist oder wenn Sie die Strafen für Interpreter-Flags separat auflisten möchten), stellen Sie sicher, dass die tatsächliche Punktzahl die letzte Zahl in der Kopfzeile ist:
# Perl, 43 + 2 (-p flag) = 45 bytes
Sie können den Namen der Sprache auch als Link festlegen, der dann im Leaderboard-Snippet angezeigt wird:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
quelle
1/x
.Antworten:
Brain-Flak ,
772536530482480 + 1 = 481 BytesDa Brain-Flak keine Fließkommazahlen unterstützt, musste ich das
-c
Flag bei der Ein- und Ausgabe mit Strings verwenden, daher die +1.Probieren Sie es online!
Erläuterung
Als erstes müssen wir uns um den negativen Fall kümmern. Da der Kehrwert einer negativen Zahl immer negativ ist, können wir einfach bis zum Ende am negativen Vorzeichen festhalten. Wir machen zunächst eine Kopie des oberen Teils des Stapels und subtrahieren 45 (den ASCII-Wert von
-
) davon. Wenn dies eins ist, setzen wir eine Null auf den Stapel, wenn nicht, tun wir nichts. Dann nehmen wir die Oberseite des Stapels auf, um sie am Ende des Programms abzulegen. Wenn die Eingabe mit einem begann, ist-
dies immer noch ein,-
aber wenn dies nicht der Fall ist , nehmen wir am Ende die von uns gesetzte Null auf.Nun, da dies nicht möglich ist, müssen wir die ASCII-Realisierungen jeder Ziffer in ihre tatsächlichen Werte (0-9) konvertieren. Wir werden auch den Dezimalpunkt entfernen
.
, um die Berechnungen zu vereinfachen. Da wir wissen müssen, wo der Dezimalpunkt beim späteren.
erneuten Einfügen begonnen hat, speichern wir eine Zahl, um zu verfolgen, wie viele Stellen sich vor dem Offstack befanden.So funktioniert der Code:
Wir beginnen mit dem Subtrahieren von 46 (dem ASCII-Wert von
.
) von jedem Element auf dem Stapel (wobei alle gleichzeitig auf den Offstack verschoben werden). Dies macht jede Ziffer zwei mehr als es sein sollte, macht aber.
genau die Null.Jetzt bewegen wir alles auf den linken Stapel, bis wir eine Null erreichen (wobei wir zwei von jeder Ziffer abziehen, während wir gehen):
Wir erfassen die Stapelhöhe
Bewegen Sie alles andere auf den linken Stapel (noch einmal subtrahieren Sie die letzten beiden von jeder Ziffer, während wir sie bewegen)
Und setzen Sie die Stapelhöhe, die wir aufgezeichnet haben
Jetzt wollen wir die Ziffern zu einer einzigen Basis 10 kombinieren. Wir möchten auch eine Zehnerpotenz mit der doppelten Anzahl von Stellen als diese Zahl für die Berechnung verwenden.
Wir beginnen damit, eine 1 auf dem Stapel zu setzen, um die Potenz von 10 zu erhalten, und die Stapelhöhe abzüglich einer 1 auf den Stapel zu schieben, um eine Schleife zu verwenden.
Jetzt schleifen wir die Stapelhöhe minus 1 mal,
Jedes Mal, wenn wir das oberste Element mit 100 multiplizieren und darunter das nächste Element mit 10 multiplizieren, addieren wir das zu der Zahl darunter.
Wir beenden unsere Schleife
Nun sind wir mit dem Einrichten fertig und können mit der eigentlichen Berechnung beginnen.
Das war's...
Wir dividieren die Potenz von 10 durch die modifizierte Version der Eingabe unter Verwendung des Ganzzahlteilungsalgorithmus von 0, wie er im Wiki zu finden ist . Dies simuliert die Division von 1 durch die Eingabe, wie es nur Brain-Flak weiß.
Zuletzt müssen wir unsere Ausgabe in das entsprechende ASCII formatieren.
Jetzt, da wir herausgefunden haben, müssen
ne
wir das herausnehmene
. Der erste Schritt dazu ist die Konvertierung in eine Ziffernliste. Dieser Code ist eine modifizierte Version von 0 ' ‚s divmod Algorithmus .Nun nehmen wir die Zahl und addieren den Dezimalpunkt dahin zurück, wo er hingehört. Wenn ich nur über diesen Teil des Codes nachdenke, bekomme ich wieder Kopfschmerzen. Daher möchte ich es dem Leser als Übung überlassen, herauszufinden, wie und warum es funktioniert.
Tragen Sie das negative Vorzeichen oder ein Nullzeichen ein, wenn es kein negatives Vorzeichen gibt.
quelle
I don't know what this does or why I need it, but I promise it's important.
1.0
oder10
-c
Flag muss mit ASCII in und out ausgeführt werden. Da Brain-Flak keine Floating Numbers unterstützt, muss IO als String verwendet werden.Python 2 , 10 Bytes
Probieren Sie es online!
quelle
Retina ,
9991 BytesProbieren Sie es online!
Woohoo, unter 100! Dies ist überraschend effizient, wenn man bedenkt, dass eine Zeichenfolge mit mehr als 10 7 Zeichen an einem Punkt erstellt (und dann abgeglichen wird) . Ich bin mir sicher, dass es noch nicht optimal ist, aber ich bin im Moment recht zufrieden mit dem Ergebnis.
Ergebnisse mit einem Absolutwert unter 1 werden ohne die führende Null gedruckt, z . B.
.123
oder-.456
.Erläuterung
Die Grundidee ist die Verwendung einer Ganzzahldivision (da dies mit Regex und unärer Arithmetik ziemlich einfach ist). Um sicherzustellen, dass wir eine ausreichende Anzahl von signifikanten Stellen erhalten, teilen wir die Eingabe in 10 7 . Auf diese Weise ergibt jede Eingabe bis 9999 immer noch eine 4-stellige Zahl. Im Endeffekt bedeutet dies, dass wir das Ergebnis mit 10 7 multiplizieren, sodass wir dies berücksichtigen müssen, wenn wir später den Dezimalpunkt erneut einfügen.
Wir beginnen damit, den Dezimalpunkt oder das Ende der Zeichenfolge zu ersetzen, wenn es keinen Dezimalpunkt mit 8 Semikolons gibt. Die erste von ihnen ist im Wesentlichen der Dezimalpunkt selbst (aber ich benutze Semikolons, weil sie nicht maskiert werden müssen), die anderen 7 zeigen an, dass der Wert mit 10 multipliziert wurde 7 (dies ist noch nicht der Fall, aber wir wissen, dass wir das später tun werden).
Wir wandeln die Eingabe zunächst in eine Ganzzahl um. Solange es noch Nachkommastellen gibt, rücken wir eine Stelle nach vorne und entfernen eines der Semikolons. Dies liegt daran, dass durch Bewegen des Dezimalpunkts nach rechts die Eingabe mit 10 multipliziert und das Ergebnis daher durch 10 geteilt wird . Aufgrund der Eingabebeschränkungen wissen wir, dass dies höchstens viermal vorkommt, sodass immer genügend Semikolons zum Entfernen vorhanden sind.
Jetzt, da die Eingabe eine Ganzzahl ist, konvertieren wir sie in unär und hängen 10 7
1
s an (durch a getrennt,
).Wir teilen die Ganzzahl in 10 7, indem wir zählen, wie viele Rückverweise darauf passen (
$#2
). Dies ist die normale unäre Ganzzahldivisiona,b
->b/a
. Jetzt müssen wir nur noch die Position des Dezimalpunkts korrigieren.Dies ist im Grunde das Gegenteil der zweiten Stufe. Wenn wir immer noch mehr als ein Semikolon haben, müssen wir das Ergebnis noch durch 10 teilen . Dazu verschieben wir die Semikolons um eine Position nach links und lassen ein Semikolon fallen, bis wir entweder das linke Ende der Zahl erreichen oder nur noch ein Semikolon (das ist der Dezimalpunkt selbst).
Jetzt ist ein guter Zeitpunkt, um die erste (und möglicherweise einzige)
;
zurück zu drehen.
.Wenn noch Semikolons übrig sind, haben wir das linke Ende der Zahl erreicht. Wenn Sie also erneut durch 10 teilen, werden hinter dem Dezimalpunkt Nullen eingefügt. Dies ist einfach zu bewerkstelligen, indem jedes verbleibende
;
durch ein ersetzt wird0
, da es ohnehin unmittelbar nach dem Komma steht.quelle
\B;
mit^;
1 Byte speichern?-
vor dem steht;
.Ja , 5 Bytes
Probieren Sie es online! Dies nimmt die Eingabe von oben auf den Stapel und lässt die Ausgabe oben auf dem Stapel. Die TIO-Verknüpfung nimmt Eingaben von Befehlszeilenargumenten entgegen, die nur Ganzzahleingaben annehmen können.
Erläuterung
yup hat nur wenige Operatoren. Die in dieser Antwort verwendeten sind ln (x) (dargestellt durch
|
), 0 () (Konstante, Nullfunktion, die zurückkehrt0
), - (Subtraktion) und exp (x) (dargestellt durche
).~
Schaltet die beiden obersten Elemente auf dem Stapel um.Dies verwendet die Identität
was das impliziert
quelle
LOLCODE ,
63, 56 Bytes7 Bytes gespart dank @devRicher!
Dies definiert eine Funktion 'r', die aufgerufen werden kann mit:
oder irgendein anderes
NUMBAR
.Probieren Sie es online!
quelle
ITZ A NUMBAR
in der Zuordnung von verwendenI
?HOW DUZ I r YR n VISIBLE QUOSHUNT OF 1 AN n IF U SAY SO
(füge neue Zeilen hinzu) ist ein paar Bytes kürzer und kann mit aufgerufen werdenr d
, wo es welched
gibtNUMBAR
.IZ
anstelle derDUZ
Interpreter-Regel verwendensed , 575 + 1 (
-r
Flag) =723718594588576 BytesProbieren Sie es online!
Hinweis: Floats, deren absoluter Wert kleiner als 1 ist, müssen ohne führende 0 wie
.5
statt geschrieben werden0.5
. Auch die Anzahl der Nachkommastellen ist gleich , wobein
die Anzahl der Nachkommastellen in der Zahl ist (so dass das Geben13.0
als Eingabe mehr Nachkommastellen ergibt als das Geben13
als Eingabe).Dies ist mein erster Sed-Beitrag zu PPCG. Aus dieser erstaunlichen Antwort wurden Ideen für die Umwandlung von Dezimalstellen in unäre Werte abgeleitet . Vielen Dank an @seshoumara, der mich durch sed geführt hat!
Dieser Code führt eine wiederholte lange Division durch, um das Ergebnis zu erhalten. Die Aufteilung dauert nur ~ 150 Bytes. Die unären Dezimalumwandlungen benötigen die meisten Bytes, und einige andere Bytes unterstützen negative Zahlen und Gleitkomma-Eingaben
Erläuterung
Erklärung zu TIO
Bearbeitungen
s:s/(.)/(.)/g:y/\1/\2/g:g
bei jeder Ersetzung 1 Byte speichern (insgesamt 5)\n
statt;
als Separator, dann konnte ich die „multiplizieren mit 10“ Substitutionen verkürzen 12 Bytes (dank @Riley und @seshoumara dies für das Zeigen Sie mir) speichernquelle
JSFuck , 3320 Bytes
JSFuck ist ein esoterischer und lehrreicher Programmierstil, der auf den atomaren Teilen von JavaScript basiert. Es werden nur sechs verschiedene Zeichen
()[]+!
zum Schreiben und Ausführen von Code verwendet.Probieren Sie es online!
quelle
return 1/this
wären etwa 76 Bytes länger alsreturn+1/this
.[].fill.constructor('alert(1/prompt())')
2929 bytes paste.ubuntu.com/p/5vGTqw4TQQ add()
2931OIL ,
1428 -1420 BytesNaja. Ich dachte, ich könnte es genauso gut versuchen, und es gelang mir am Ende. Es gibt nur einen Nachteil: Das Ausführen dauert fast so lange wie das Schreiben.
Das Programm ist in mehrere Dateien aufgeteilt, die alle 1-Byte-Dateinamen enthalten (und für ein zusätzliches Byte in meiner Byte-Berechnung zählen). Einige der Dateien sind Teil der Beispieldateien der OIL-Sprache, aber es gibt keine echte Möglichkeit, sie konsistent aufzurufen (es gibt noch keinen Suchpfad oder ähnliches in OIL, sodass ich sie nicht als Standardbibliothek betrachte), aber Dies bedeutet auch, dass einige der Dateien (zum Zeitpunkt der Veröffentlichung) ausführlicher sind als erforderlich, jedoch in der Regel nur um einige Bytes.
Die Berechnungen sind auf 4 Stellen genau, aber selbst das Berechnen eines einfachen Reziprokwerts (wie der Eingabe
3
) dauert sehr lange (über 5 Minuten). Zu Testzwecken habe ich auch eine kleinere Variante erstellt, die zweistellig ist. Die Ausführung dauert nur wenige Sekunden, um zu beweisen, dass sie funktioniert.Es tut mir leid für die riesige Antwort, ich wünschte, ich könnte eine Art Spoiler-Tag verwenden. Wenn gewünscht, könnte ich den Großteil auch auf gist.github.com oder ähnliches einstellen.
Los geht's:
main
217 Bytes (Dateiname zählt nicht für Bytes):a
(Prüft, ob eine bestimmte Zeichenfolge in einer anderen Zeichenfolge enthalten ist.) 74 + 1 = 75 Byte:b
(Verbindet zwei angegebene Zeichenfolgen), 20 + 1 = 21 Byte:c
(Wenn ein Symbol angegeben wird, wird die angegebene Zeichenfolge beim ersten Auftreten aufgeteilt.) 143 + 1 = 144 Byte (diese Zeichenfolge ist offensichtlich noch golffähig):d
(Wenn eine Zeichenfolge angegeben wird, werden die ersten 4 Zeichen abgerufen), 22 + 1 = 23 Byte:e
(High-Level-Division (aber mit Null-Division-Gefahr)), 138 + 1 = 139 Bytes:f
(verschiebt einen Punkt 4 Stellen nach rechts; "dividiert" durch 10000), 146 + 1 = 147 Bytes:g
(prüft, ob eine Zeichenfolge mit einem bestimmten Zeichen beginnt), 113 + 1 = 114 Byte:h
(gibt alles außer dem ersten Zeichen einer bestimmten Zeichenfolge zurück), 41 + 1 = 42 Byte:i
(subtrahiert zwei Zahlen), 34 + 1 = 35 Bytes:j
(Unterteilung, die nicht in allen Fällen funktioniert), 134 + 1 = 135 Byte:k
(Multiplikation), 158 + 1 = 159 Bytes:l
(Absolutwert zurückgeben), 58 + 1 = 59 Byte:m
(Addition), 109 + 1 = 110 Bytes:quelle
J, 1 Byte
%
ist eine Funktion, die den Kehrwert ihrer Eingabe angibt. Sie können es so ausführenquelle
Taxi , 467 Bytes
Probieren Sie es online!
Ungolfed:
quelle
Vim,
108 Bytes / TastenanschlägeDa V abwärtskompatibel ist, können Sie es online ausprobieren!
quelle
=
. Sie verlassen sich ausschließlich auf andere Makros, Register zum Speichern des Speichers und Tasten zum Navigieren und Ändern von Daten. Wäre viel komplexer aber ich finde es wäre so geil! Ich denke,f
als Bedingungstest würde das eine große Rolle spielen.6431.0
damit es als Gleitkommazahl behandelt wirdx86_64 Linux-Maschinensprache, 5 Byte
Um dies zu testen, können Sie das folgende C-Programm kompilieren und ausführen
Probieren Sie es online!
quelle
rcpss
nur ein ungefährer Kehrwert berechnet wird (etwa 12-Bit-Genauigkeit). +1C,
1512 BytesProbieren Sie es online!
16 bis13 Bytes, wenn auch Integer-Eingaben verarbeitet werden sollen:So können Sie es mit
f(3)
anstelle von aufrufenf(3.0)
.Probieren Sie es online!
Danke an @hvd für das Golfen mit 3 Bytes!
quelle
f(x)
mit1/x
. Wenn die "Funktion" ausgeführt wird, die so spät wie zur Laufzeit oder so früh wie Ihr Compiler möchte (und sich als richtig erweisen kann), ist dies technisch nicht der Präprozessor-Schritt.2
und-5
als Eingabe. Beide2
und-5
sind Dezimalzahlen und enthalten Ziffern im Bereich von 0 bis 9.#define f 1./
auch.MATLAB / Octave, 4 Bytes
Erstellt ein Funktionshandle (benannt
ans
) für die integrierteinv
FunktionOnline Demo
quelle
05AB1E , 1 Byte
Probieren Sie es online!
quelle
GNU sed ,
377362 + 1 (r Flag) = 363 BytesWarnung: Das Programm verbraucht den gesamten Systemspeicher, der ausgeführt werden soll, und benötigt mehr Zeit, als Sie abwarten möchten. Unten finden Sie eine Erklärung und eine schnelle, aber weniger genaue Version.
Dies basiert auf der Retina-Antwort von Martin Ender. Ich zähle
\t
ab Zeile 2 als wörtliche Registerkarte (1 Byte).Mein Hauptbeitrag ist die Umrechnungsmethode von dezimal zu unär (Zeile 2) und umgekehrt (Zeile 5). Es ist mir gelungen, die dafür erforderliche Codegröße (um insgesamt ~ 40 Byte) im Vergleich zu den in einem vorherigen Tipp beschriebenen Methoden erheblich zu reduzieren . Ich habe eine separate Tippantwort mit den Details erstellt, in der ich gebrauchsfertige Snippets zur Verfügung stelle. Da 0 nicht als Eingabe zulässig ist, wurden einige Bytes mehr gespeichert.
Erklärung: Um den Teilungsalgorithmus besser zu verstehen, lesen Sie zuerst die Retina-Antwort
Das Programm ist theoretisch korrekt, der Grund, warum es so viel Rechenressourcen verbraucht, ist, dass der Teilungsschritt hunderttausendmal ausgeführt wird, je nach Eingabe mehr oder weniger, und der verwendete reguläre Ausdruck einen Albtraum der Rückverfolgung hervorruft. Die schnelle Version reduziert die Präzision (daher die Anzahl der Teilungsschritte) und ändert die Regex, um das Backtracking zu reduzieren.
Leider hat sed keine Methode, um direkt zu zählen, wie oft eine Rückreferenz in ein Muster passt, wie in Retina.
Für eine schnelle und sichere Version des Programms, aber weniger genau, können Sie dies online versuchen .
quelle
Japt , 2 Bytes
Die naheliegende Lösung wäre
Das ist ganz wörtlich
1 / input
. Wir können jedoch eines besser machen:Dies entspricht
input ** J
undJ
ist standardmäßig auf -1 gesetzt.Probieren Sie es online!
Unterhaltsame Tatsache: Wie
p
die Potenzfunktionq
ist auch die Wurzelfunktion (p2
=**2
,q2
=**(1/2)
); das heißt, dasqJ
wird auch funktionieren, da-1 == 1/-1
und daherx**(-1) == x**(1/-1)
.quelle
Javascript ES6, 6 Bytes
Probieren Sie es online!
Javascript verwendet standardmäßig die Gleitkommadivision.
quelle
APL, 1 Byte
÷
Berechnet bei Verwendung als monadische Funktion den Kehrwert. Probieren Sie es online!Verwendet den Dyalog Classic-Zeichensatz.
quelle
Cheddar , 5 Bytes
Probieren Sie es online!
Dies verwendet
&
, was ein Argument an eine Funktion bindet. In diesem Fall1
ist an die linke Seite gebunden/
, was uns1/x
zu einem Streit verleitetx
. Dies istx->1/x
um 1 Byte kürzer als das kanonische .Alternativ in den neueren Versionen:
quelle
(1:/)
für die gleiche Anzahl von Bytes werdenJava 8, 6 Bytes
Fast das gleiche wie die JavaScript-Antwort .
quelle
MATL , 3 Bytes
Probieren Sie es bei MATL Online aus
Erläuterung
quelle
Python, 12 Bytes
Eine für 13 Bytes:
Eine für 14 Bytes:
quelle
Mathematica, 4 Bytes
Bietet Ihnen ein genaues Rational, wenn Sie es als genaues Rational bezeichnen, und ein Gleitkommaergebnis, wenn Sie es als Gleitkommaergebnis bezeichnen.
quelle
ZX Spectrum BASIC, 13 Byte
Anmerkungen:
SGN PI
anstelle von Literalen1
.ZX81 Version für 17 Bytes:
quelle
LET A=17
Ihre Anwendung in eine Zeile umgestalten.1 PRINT SGN PI/A
Sie müssen den Wert von A jedes Mal ändern, wenn Sie Ihr Programm ausführen möchten.Haskell , 4 Bytes
Probieren Sie es online!
quelle
R, 8 Bytes
Ziemlich einfach. Gibt direkt die Inverse des Eingangs aus.
Eine andere, aber 1 Byte längere Lösung kann sein:
scan()^-1
oder sogarscan()**-1
für ein zusätzliches Byte. Beides^
und**
das Energiesymbol.quelle
TI-Basic (TI-84 Plus CE),
652 Bytes-1 Byte dank Timtech .
-3 Bytes mit
Ans
Dank an Григорий Перельман .Ans
und⁻¹
sind Ein-Byte-Token .TI-Basic gibt implizit den zuletzt ausgewerteten Wert zurück (
Ans⁻¹
).quelle
Ans
, daher können Sie diese durchAns⁻¹
Gelee , 1 Byte
Probieren Sie es online!
quelle
Jelly programs consist of up to 257 different Unicode characters
.¶
und das Zeilenvorschubzeichen austauschbar sind. Während der Unicode-Modus 257 verschiedene Zeichen "versteht", werden sie 256 Token zugeordnet.C 30 Bytes
quelle
0
, um ein Byte zu sparen. Damit1.
wird noch ein Double zusammengestellt.1.
wird immer noch wie eine ganze Zahl behandelt.echo -e "#include <stdio.h>\nfloat f(x){return 1./x;}main(){printf(\"%f\\\\n\",f(5));}" | gcc -o test -xc -
Ausgabe von./test
ist0.200000
float f(float x){return 1/x;}
würde richtig funktionieren..
- C wird gerne implizit konvertieren(int)1
zu(float)1
wegen der Art derx
.