En commençant par, /\
vous pouvez créer un motif de type triangle de Sierpinski en ajoutant une ligne sous telle que ...
- Toute branche lâche
/
ou se\
divise à nouveau en deux branches:/\
. - Toute collision de branches
\/
meurt sans rien (mais des espaces) en dessous.
La répétition de ces règles donne
/\
/\/\
/\ /\
/\/\/\/\
/\ /\
/\/\ /\/\
etc...
Écrivez un programme ou une fonction qui prend un entier positif N et imprime les N premières lignes de ce modèle sur stdout, sans plus d'espaces de début ou de fin que nécessaire.
Par exemple, si l'entrée est 1
la sortie doit être
/\
Si l'entrée est 2
la sortie doit être
/\
/\/\
Si l'entrée est 8
la sortie doit être
/\
/\/\
/\ /\
/\/\/\/\
/\ /\
/\/\ /\/\
/\ /\ /\ /\
/\/\/\/\/\/\/\/\
Etc.
Le code avec le moins d'octets gagne.
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
Loisirs de Calvin
la source
la source
Réponses:
GolfScript (42 octets)
Démo en ligne
Cela exploite une relation bien connue entre le triangle de Pascal et le triangle de Sierpinski.
la source
CJam,
4846 octetsApproche récursive simple basée sur les observations 1 et 2 de la question.
Essayez-le en ligne.
Comment ça fonctionne
CJam, 51 octets
J'aime mieux cette approche, mais elle ne peut pas rivaliser avec l'approche récursive. Même après élimination
2mL
(ce qui se traduit par au moins O (2 n ) de temps d'exécution), je suis toujours à 48 octets ...Cette approche code les
/\
«1» et les espaces doubles entre les «0». En considérant les nombres binaires des tableaux résultants, nous voyons que la configuration de la nième ligne correspond au nième entier supérieur à 1 qui peut être exprimé comme un produit de différents nombres de Fermat (entiers de la forme 2 2 k +1 ).Comment ça fonctionne
la source
Python
2-140 139 127 127 122 121 118116Basé sur des remplacements temporaires de chaînes ( /programming//a/8687380/3419103 ):
/
>V
\
>V
\/
>__
(2 espaces)V
>/\
la source
b*(N-1)+m+n
pourrait êtreb*~-N+m+n
Javascript - 117 octets
Minifié:
Étendu:
Exemple de sortie (pour
n = 20
):Maintenant, si seulement les noms de fonction
repeat
etreplace
n'étaient pas si longs. : Pla source
Pyth, 45 octets
Exemple d'exécution
Comment ça fonctionne
la source
Rubis, 90
Explication
Integer
.String#center
pour créer unString
"/\"
avec desn - 2
espaces de chaque côté et mettez-le dans unArray
(a
).a
dernier élément dea
chaque occurrence de"\/"
remplacé par" "
et chaque occurrence de" /"
ou" \"
remplacé par"/\"
.puts
d'imprimer chaque élémenta
sur sa propre ligne.la source
Haskell,
128112la source
import Data.List
(puisque vous l'avez utiliséunlines
), ce qui porte à 145unlines
est dans le prélude.JavaScript (E6)
107106Edit: nombre d'octets fixe, rendu récursif.
Pas très différent de l'autre réponse JS ... au moins celle-ci 'imprime' le motif comme demandé. Le noyau remplace '/' '\' par '/ \' et tout le reste par '' sur chaque nouvelle ligne.
Test dans la console FireFox / FireBug
Production
la source
Perl 5-56 octets
Les \ 0 peuvent être remplacés par des caractères d'octets nuls réels
Il utilise le fait que si vous ignorez les espaces de début et représentez '/ \' comme 1 et '' comme 0 le motif dans une ligne donnée f (n) = f (n-1) ^ (f (n-1) < <1). Cependant, les calculs dans le code ci-dessus sont exécutés sur des chaînes proches de la sortie attendue (pas d'espaces de tête, d'autres espaces remplacés par des octets nuls) grâce à la manipulation de chaînes au niveau du bit de perl.
la source
Python 2, 84 octets
la source
Javascript avec lambdas,
141128141
128
Peut être testé sur Firefox (n = 16):
la source
Python 2, 97 octets
la source
Mathematica, 86 octets
la source