Primero, un interludio matemático, breve y que vale la pena:
Si 0 < a < 4
, la función logística f(x) = ax(1-x)
mapea el intervalo [0,1] dentro de sí misma. Esto significa que uno puede jugar el juego de iteración; por ejemplo, si a = 2, el valor inicial 0.3 se convierte en 0.42, luego 0.4872, etc.
A medida que a
aumenta el parámetro , la función cuadrática se f
vuelve más complicada en el siguiente sentido:
0 < a < 1
Todos los valores iniciales iteran hacia 0.1 < a < 3
0 se vuelve repelente, pero hay un nuevo punto fijo (a-1) / a que atrae todas las iteraciones.3 < a < 1+sqrt(6)
el nuevo punto fijo se vuelve repelente, pero aparece un ciclo de 2 puntos de atracción.3.44949... < a < 3.54409...
el ciclo 2 se vuelve repelente, pero aparece un ciclo de 4 puntos de atracción.- etc.
Feigenbaum notó que las longitudes de estos intervalos de parámetros disminuyen a un ritmo cada vez más cercano a 4.6692...
la constante de Feigenbaum . El maravilloso descubrimiento es que esta secuencia de bifurcación del período 2 es un fenómeno general compartido por cualquier función que (como la parábola cuadrática) aumenta y luego disminuye. Este fue uno de los primeros informes sobre la universalidad del caos .
¡Ahora para el desafío! Escriba el código más corto posible que calcule la constante de Feigenbaum con la precisión que elija. El punto aquí no es engañar al sistema codificando un número que buscó en Google, sino que la computadora realmente encuentre el valor. Como referencia, aquí está la constante de 30 dígitos:
4.669201609102990671853203821578
Respuestas:
Javascript,
141138135131 bytes, 8 dígitosEs algo que supongo. Debería ser bastante mejorable. Si alguien necesita un comienzo: cómo calcular Feigenbaum . Y si prefieres saber cómo hacerlo en términos de código, mira esto .
Copia y pega el siguiente código en tu consola. Calcula 4.6692016 68823243 (por lo que no es realmente preciso).
fuente
Python, 127 bytes
El crédito va para @ThomasW con su respuesta de JavaScript.
Añadir
print(d)
a la salida 4.669201673141983 . Toma unos segundos, debido a las largas cadenas que se calculan antes de la ejecución.fuente
Carbón , 84 bytes
Pruébalo en línea! Enlace al código detallado para explicación.
Utiliza el algoritmo de aquí .
Imprime 4.66920 0975097843 (6 dígitos)
fuente