Comenzando con /\usted, puede crear un patrón similar a un triángulo de Sierpinski agregando una línea debajo de tal manera que ...
- Cualquier rama suelta
/o\se divide de nuevo en dos ramas:/\. - Cualquier colisión de ramas
\/muere con nada (excepto espacios) debajo.
Repetir estas reglas produce
/\
/\/\
/\ /\
/\/\/\/\
/\ /\
/\/\ /\/\
etc...
Escriba un programa o función que tome un entero positivo N e imprima las primeras N líneas de este patrón en stdout, sin más espacios iniciales o finales de los necesarios.
Por ejemplo, si la entrada es 1la salida debe ser
/\
Si la entrada es 2la salida debe ser
/\
/\/\
Si la entrada es 8la salida debe ser
/\
/\/\
/\ /\
/\/\/\/\
/\ /\
/\/\ /\/\
/\ /\ /\ /\
/\/\/\/\/\/\/\/\
Y así.
El código con la menor cantidad de bytes gana.
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
Pasatiempos de Calvin
fuente
fuente

Respuestas:
GolfScript (42 bytes)
Demostración en línea
Esto explota una relación bien conocida entre el triángulo de Pascal y el triángulo de Sierpinski.
fuente
CJam,
4846 bytesEnfoque recursivo simple basado en las observaciones 1 y 2 de la pregunta.
Pruébalo en línea.
Cómo funciona
CJam, 51 bytes
Me gusta más este enfoque, pero no puede competir con el recursivo. Incluso después de eliminar
2mL(lo que resulta en al menos O (2 n ) tiempo de ejecución), todavía estoy en 48 bytes ...Este enfoque codifica
/\los s como 1 y los espacios dobles entre ellos como 0. Considerando los números binarios de las matrices resultantes, vemos que la configuración de la enésima fila corresponde al enésimo número entero mayor que 1 que puede expresarse como producto de diferentes números de Fermat (enteros de la forma 2 2 k +1 ).Cómo funciona
fuente
Python 2 -
140 139 127 122 121 118116Basado en reemplazos de cadenas temporales ( /programming//a/8687380/3419103 ):
/>V\>V\/>__(2 espacios)V>/\fuente
b*(N-1)+m+npodría serb*~-N+m+nJavascript - 117 bytes
Minified:
Expandido:
Salida de muestra (para
n = 20):Ahora bien, si sólo el
repeatyreplacenombres de funciones no eran tan largas. :PAGfuente
Pyth, 45 bytes
Ejecución de ejemplo
Cómo funciona
fuente
Rubí, 90
Explicación
Integer.String#centerpara crear unString"/\"conn - 2espacios en cada lado y ponerlo en unArray(a).aúltimo elemento deacon cada aparición de"\/"reemplazado con" "y cada aparición de" /"o" \"reemplazado con"/\".putspara imprimir cada elemento enasu propia línea.fuente
Haskell,
128112fuente
import Data.List(desdeunlinesque lounlinesestá en el preludio.JavaScript (E6) 107
106Editar: recuento de bytes fijo, hecho recursivo.
No muy diferente de la otra respuesta JS ... al menos esta 'imprime' el patrón según lo solicitado. El núcleo está reemplazando '/' '\' con '/ \' y todo el resto con '' en cada nueva línea.
Prueba en la consola FireFox / FireBug
Salida
fuente
Perl 5 - 56 bytes
Los \ 0 se pueden reemplazar por caracteres de bytes nulos reales
Está utilizando el hecho de que si ignora los espacios iniciales y representa '/ \' como 1 y '' como 0, el patrón en una fila dada f (n) = f (n-1) ^ (f (n-1) < <1). Sin embargo, los cálculos en el código anterior se ejecutan en cadenas que están cerca de la salida esperada (sin espacios iniciales, otros espacios reemplazados por bytes nulos) gracias a la manipulación de cadenas bit a bit de perl.
fuente
Python 2, 84 bytes
fuente
Javascript con lambdas,
141128141
128
Se puede probar en Firefox (n = 16):
fuente
Python 2, 97 bytes
fuente
Mathematica, 86 bytes
fuente