In Erwartung der vorübergehenden Deaktivierung von MathJax wurde das in dieser Frage gerenderte MathJax durch Bilder ersetzt. Sie können weiterhin gerne Antworten posten, müssen das gerenderte MathJax jedoch auf einer anderen Site anzeigen .
PPCG hat gerade MathJax bekommen ! Dies bedeutet, dass wir nun problemlos gut formatierte mathematische Formeln in Posts einfügen können. ( Praktisches MathJax-Tutorial. )
Zum Beispiel ist hier der goldene Schnitt, ausgedrückt als unendlicher fortgesetzter Bruch :
Der MathJax-Code für diese Gleichung lautet
$$\varphi=1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\ddots}}}}$$
Sie finden dies, indem Sie mit der rechten Maustaste auf die Formel klicken und Show Math As → TeX Commands ausführen .
Das $$
bedeutet, dass es allein in der Mitte der Seite anstatt inline angezeigt wird. Verwenden Sie eine Single $
für Inline.
Herausforderung
Schreiben Sie ein Programm, das eine nicht negative Ganzzahl n enthält und den MathJax-Code für die vielen "Schritte" des fortgesetzten Bruchs für den goldenen Schnitt ausgibt.
Um die Dinge Standard über Antworten, müssen Sie diese verwenden , genaue Mathjax Syntax:
Für n = 0 muss der Ausgang sein
$$\varphi=1+\dots$$
.
Welches wird gerendert als:Für n = 1 muss der Ausgang sein
$$\varphi=1+\cfrac1{1+\ddots}$$
.
Welches wird gerendert als:Für n = 2 muss der Ausgang sein
$$\varphi=1+\cfrac1{1+\cfrac1{1+\ddots}}$$
.
Welches wird gerendert als:Für n = 3 muss der Ausgang sein
$$\varphi=1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\ddots}}}$$
.
Welches wird gerendert als:
Dieses Muster setzt sich für ein größeres n fort. Man könnte sagen, dass n die Anzahl der Teilungslinien in der Gleichung darstellt.
Anmerkungen
\cfrac
wird anstelle des gebräuchlicheren verwendet\frac
.\dots
wird anstelle von\ddots
für n = 0 verwendet.- Nehmen Sie Eingaben von stdin oder der Befehlszeile entgegen.
- Ausgabe auf stdout (mit optionalem Zeilenumbruch).
- Alternativ können Sie eine Funktion schreiben, die n als Ganzzahl aufnimmt und den MathJax-Code als Zeichenfolge zurückgibt (oder ihn weiterhin druckt).
Wertung
Die kleinste Einsendung in Bytes gewinnt. Tiebreaker geht auf die frühere Vorlage.
quelle
Uncaught ReferenceError: textbox is not defined
Antworten:
CJam,
5150 BytesCode Erklärung:
Einige Beispiele:
N = 0
N = 4
N = 15
UPDATE - 1 Byte gespart dank Sp3000!
Probieren Sie es hier online aus
quelle
"$$\varphi=1+""\cfrac1{1+"ri:R*'\"ddots"R!>'}R*'$_
\v
zu\\v
.Python,
706867 BytesDies definiert eine anonyme Funktion, die nur einfache Zeichenfolgenmultiplikation und Zeichenfolgenformatierung verwendet.
(Vielen Dank an @xnor für den Hinweis, dass
\\c
nur geschrieben werden kann als\c
, dac
nicht maskiert werden kann . Leider gilt dies nicht für\\v
, da\v
ASCII 11 ist.)Bisherige Versuche:
quelle
> <> ,
8986 + 3 = 89 BytesLaufen Sie mit der
-v
Flagge, zÜberraschenderweise macht sich> <> hier nicht schlecht, da wir die String-Multiplikation nachahmen können, indem wir einen Zähler haben, den wir bei jeder Iteration dekrementieren.
(-3 Bytes dank @randomra)
quelle
Retina , 160 + 7 = 167 Bytes
; +
(\d*)#(?:(((((((((9)|8)|7)|6)|5)|4)|3)|2)|1)|0) $1$1$1$1$1$1$1$1$1$1$2$3$4$5$6$7$8$9$10# ;
#Jede Zeile geht in eine separate Quelldatei, daher habe ich nach der ersten 1 Byte für jede Datei hinzugefügt . Der
-s
Einfachheit halber unterstützt Retina jetzt auch das Befehlszeilen-Flag, mit dem Sie all dies in einer einzigen Datei zusammenfassen können (in diesem Fall werden die Zeilenumbrüche als Dateitrenner behandelt).Der größte Teil des Codes (98 Byte) wird zum Konvertieren der Eingabe von dezimal nach unär (Dateien 3 bis 6) verwendet. Die Grundidee des Codes wird die Eingabe in umgeben
$$\varphi=1+\dots...$$
, dann wandelt die Eingabe in unäre, und erweitert\dotsN
oder\ddotsN
auf die nächsten Ebene des Kettenbruches ( bei gleichzeitiger ReduzierungN
zuN-1
).quelle
Julia,
7673 BytesDadurch wird eine Lambda-Funktion erstellt, die eine einzelne Ganzzahl als Eingabe verwendet und das MathJax als Zeichenfolge zurückgibt. Um es zu nennen, geben Sie ihm einen Namen, z
f=n->...
.Leider müssen sowohl Backslashes als auch Dollarzeichen in Julia-Strings maskiert werden, da beide eine besondere Bedeutung haben. Die Verkettung von
*
Zeichenfolgen erfolgt mit und die Wiederholung von Zeichenfolgen mit^
.Beispiele:
Vorschläge sind wie immer willkommen!
Bearbeiten: 3 Bytes dank Plannapus gespeichert!
quelle
"d"^(n>0)
anstatt(n>0?"d":"")
würde es kürzer machen."string"^0
das echt war.Element, 63 Zeichen
Dies ist die einfachste Lösung. Leider führt die große Anzahl von Symbolen in der Ausgabe zu einer signifikanten Erhöhung der Programmlänge (das Einfügen der Zeichenfolgen in das Programm bewirkt direkt, dass die Symbole Operationen ausführen). Ich bin sicher, dass es Platz zum Golfen gibt, aber ich habe momentan keine Zeit mehr.
Da diese Sprache noch relativ unbekannt ist, finden Sie hier einen in Perl geschriebenen Link zum Interpreter .
quelle
T-SQL,
229227138Es ist schon eine Weile her, dass ich eine SQL-Antwort gemacht habe, und wie immer ist es sehr ausführlich. Bearbeiten Natürlich habe ich es überkompliziert und brauchte überhaupt keine rekursive Abfrage.
Original
Dadurch wird eine Inline-Tabellenfunktion erstellt, die eine rekursive Abfrage verwendet, um den zusätzlichen
cfrac1{1+\
Inhalt pro Iteration einzufügen. Das Ändern der Punkte in Punkte war teuer, ersparte aber ein paar, die das Ersetzen loswurden :). Auch die ursprüngliche Zeichenfolge als 'VARCHAR (MAX)' umwandeln zu müssen, kostet ein wenig.Es wird wie folgt verwendet :
quelle
Ruby,
76757170 BytesDas fühlt sich verdächtig einfach an, also lass es mich bitte wissen, wenn ich irgendwo etwas falsch gemacht habe.
Übrigens ist dies das erste, was ich jemals in Ruby geschrieben habe - ich suchte nach einer Sprache, die die Wiederholung von Zeichenfolgen durch Multiplikation unterstützt, und Ruby schien den Trick zu tun.
So bewerben:
quelle
J, 60 Bytes
Verwendung:
Methode:
Die Zeichenfolge
'$$\varphi=1+\ cfrac1{1+\ d dots } $$ '
wird in Leerzeichen geschnitten und die Teile werden mehrmals wiederholt1 n signum(n) 1 n 1
und dann werden diese Teile verkettet.Probieren Sie es hier online aus.
quelle
R
93,90Ähnlich wie die anderen Antworten. Vielen Dank an @plannapus für den Scan-Tipp.
cat
anstatt paste0 als das Ergebnis mit verwendet würde am Ende\\
statt\
.In Benutzung
quelle
n
beim ersten Auftreten als stdin eingeben lassen, einige Zeichen speichern:cat("$$\\varphi=1+\\",rep("cfrac1{1+\\",n<-scan()),if(n)"d","dots",rep("}",n),"$$",sep="")
JavaScript,
11410910685 Bytes, danke an George ReithDies ist meine erste Teilnahme an einem Codegolf-Wettbewerb! Bitte sag mir, wie ich mich verbessern kann.
Vorheriger Eintrag (106 Bytes):
Vorheriger Eintrag (109 Bytes):
Vorheriger Eintrag (114 Bytes):
Einfügen in die Browser-Konsole und Aufrufen als
f(n)
won
ist die Anzahl der "Schritte".Vereinfachter Code :
quelle
Pyth - 52 Bytes
Der einfache Ansatz in Pyth, der der Python-Lösung von @ Sp3000 so ziemlich gestohlen wurde. Verwendet den Zeichenfolgenformatierungsoperator
%
.Probieren Sie es hier online aus .
quelle
Pyth, 50 Bytes
quelle
JavaScript (ES6), 76
80Teilweise rekursiv. Das einfache / doppelte d ist der nervigste Teil.
Test In der Firefox / FireBug-Konsole
quelle
Python,
90116Da die effizienteste Lösung bereits mehrmals veröffentlicht wurde, werde ich stattdessen die Zeichenfolge ersetzen
Edit: Verdammt, übersehen
dots
stattddots
fürn=0
, jetzt ist die rekursive Lösung mit einer zusätzlichen Klausel zu hässlich, um mithalten zu können.quelle
n=0
Sonderfall (Punkte statt Punkte).Haskell, 86
Im Wesentlichen derselbe Ansatz wie bei allen Lösungen.
drop(0^n)"ddots"
ist aber süß!quelle