Beginnen /\
Sie mit einem Sierpinski-Dreiecksmuster , indem Sie eine Linie darunter einfügen, sodass ...
- Jeder loser Zweig
/
oder\
Splits wieder in zwei Zweige:/\
. - Jede Kollision von Zweigen
\/
stirbt mit nichts (außer Leerzeichen) darunter.
Das Wiederholen dieser Regeln ergibt
/\
/\/\
/\ /\
/\/\/\/\
/\ /\
/\/\ /\/\
etc...
Schreiben Sie ein Programm oder eine Funktion, die eine positive Ganzzahl N aufnimmt und die ersten N Zeilen dieses Musters auf stdout ausgibt, wobei nicht mehr führende oder nachfolgende Leerzeichen als erforderlich verwendet werden.
Wenn zum Beispiel der Eingang 1
der Ausgang ist, muss er sein
/\
Wenn der Eingang ist, 2
muss der Ausgang sein
/\
/\/\
Wenn der Eingang ist, 8
muss der Ausgang sein
/\
/\/\
/\ /\
/\/\/\/\
/\ /\
/\/\ /\/\
/\ /\ /\ /\
/\/\/\/\/\/\/\/\
Und so weiter.
Der Code mit den wenigsten Bytes gewinnt.
code-golf
fractal
code-golf
math
polynomials
abstract-algebra
code-golf
geometry
3d
popularity-contest
string
code-golf
math
3d
code-golf
javascript
browser
code-golf
random
array-manipulation
code-golf
restricted-source
javascript
set-theory
code-golf
graph-theory
path-finding
decision-problem
code-golf
code-golf
primes
c
code-golf
graphical-output
fractal
fastest-code
simulation
code-golf
sequence
code-golf
graphical-output
code-golf
code-golf
math
binary
rational-numbers
code-golf
number
fibonacci
popularity-contest
code-golf
number
code-golf
game
Calvins Hobbys
quelle
quelle
Antworten:
GolfScript (42 Bytes)
Online-Demo
Dabei wird eine bekannte Beziehung zwischen Pascals Dreieck und dem Sierpinski-Dreieck ausgenutzt.
quelle
CJam,
4846 BytesEinfacher rekursiver Ansatz basierend auf den Beobachtungen 1 und 2 in der Frage.
Probieren Sie es online aus.
Wie es funktioniert
CJam, 51 Bytes
Ich mag diesen Ansatz besser, aber er kann nicht mit dem rekursiven konkurrieren. Selbst nach dem Eliminieren
2mL
(was zu mindestens O (2 n ) Ausführungszeit führt) habe ich immer noch 48 Bytes ...Dieser Ansatz codiert
/\
Einsen und doppelte Leerzeichen zwischen ihnen als Nullen. In Anbetracht der resultierenden binären Zahlen der Arrays sehen wir, dass die Konfiguration der n-ten Zeile der n-ten ganzen Zahl größer als 1 entspricht, die als Produkt verschiedener Fermat-Zahlen (ganze Zahlen der Form 2 2 k +1 ) ausgedrückt werden kann .Wie es funktioniert
quelle
Python 2 -
140 139 127 122 121 118116Basierend auf temporären String-Ersetzungen ( /programming//a/8687380/3419103 ):
/
>V
\
>V
\/
>__
(2 Leerzeichen)V
>/\
quelle
b*(N-1)+m+n
könnte seinb*~-N+m+n
Javascript - 117 Bytes
Minimiert:
Erweitert:
Beispielausgabe (für
n = 20
):Wenn nur die
repeat
undreplace
Funktionsnamen nicht so lang wären . : Pquelle
Pyth, 45 Bytes
Beispiellauf
Wie es funktioniert
quelle
Rubin, 90
Erläuterung
Integer
.String#center
, um einString
"/\"
mitn - 2
Leerzeichen auf jeder Seite zu erstellen und es in einArray
(a
) zu setzen.a
letzten Element vona
mit jedem Auftreten von"\/"
ersetzt durch" "
und jedem Auftreten von" /"
oder" \"
ersetzt durch"/\"
.puts
diese Option , um jedes Element ina
einer eigenen Zeile auszudrucken .quelle
Haskell,
128112quelle
import Data.List
(seit du es benutzt hastunlines
), was es auf 145 bringtunlines
ist im Auftakt.JavaScript (E6) 107
106Edit: feste Byteanzahl, rekursiv gemacht.
Nicht viel anders als die andere Antwort von JS ... Zumindest druckt diese das Muster wie gewünscht. Der Kern ersetzt '/' '\' durch '/ \' und den Rest durch '' in jeder neuen Zeile.
Test In FireFox / Firebug - Konsole
Ausgabe
quelle
Perl 5 - 56 Bytes
\ 0 kann durch tatsächliche Null-Byte-Zeichen ersetzt werden
Es wird die Tatsache ausgenutzt, dass, wenn Sie führende Leerzeichen ignorieren und '/ \' als 1 und '' als 0 darstellen, das Muster in einer gegebenen Zeile f (n) = f (n-1) ^ (f (n-1) < <1). Die Berechnungen im obigen Code werden jedoch für Zeichenfolgen ausgeführt, die nahe an der erwarteten Ausgabe liegen (keine führenden Leerzeichen, andere Leerzeichen, die durch Null-Bytes ersetzt werden), dank der bitweisen Zeichenfolgen-Manipulation von Perl.
quelle
Python 2, 84 Bytes
quelle
Javascript mit Lambdas,
141128141
128
Kann bei Firefox getestet werden (n = 16):
quelle
Python 2, 97 Bytes
quelle
Mathematica, 86 Bytes
quelle