fractals - son - tipos de fractales
Programación de fractales (11)
¿Ayudaría el aprendizaje de programar fractales a pensar con claridad sobre cierto conjunto de problemas de programación?
Algunos fractales son buenos ejemplos visuales para la recursión explícita; si tiene problemas con ese concepto, podrían ser buenos problemas para trabajar. Puedes comenzar con trayectorias fractales del estilo "gráficos de tortugas" como la curva de Hilbert o el clásico fractal "copo de nieve".
Muchos métodos de generación de fractales utilizan el crujido de números de alta resistencia (por ejemplo, conjuntos de Mandelbrot y Julia). El crujido de números es, por supuesto, un campo en sí mismo, y ajustar tu generador fractal para que funcione lo más rápido posible puede ser un buen ejercicio de optimización.
Cualquier tipo de experiencia en programación es útil. Entonces sí lo es.
Especialmente para:
- problemas de matematicas
- algoritmos básicos
- y, por supuesto, programación fractal
Fractales me hizo pensar en números complejos y puntos de ramificación . Si eso fue algo bueno es, supongo, una cuestión de opinión. :-)
No creo que programar fractales te enseñe algo en particular. Dependiendo del fractal, supongo que podría enseñarte un poco sobre matemática o fractales en general.
Sin embargo, creo que los fractales son divertidos como introducción a la programación, y los principiantes / estudiantes a menudo están fascinados por el resultado, ya sea fractales más gráficos como conjuntos de mandelbrot o julia, o sistemas L más fáciles de entender.
Por supuesto, si eres nuevo en programación, también te enseñará mucho sobre programación en general. Si nada más, los fractales son interesantes de mirar.
Por lo que recuerdo, obtendrás un buen manejo de la recursión si nada más ... tal vez también una pequeña programación a nivel de mapa de bits ...
Tal vez te dé práctica en la implementación de fórmulas matemáticas.
cuando era estudiante, utilizamos el dibujo fractal para potenciar nuestro trabajo en el procesamiento parellel. Se vuelve bastante intensivo computacionalmente rápidamente, por lo que tener varias CPU disponibles para hacer el trabajo le permite ver un aumento visible en la eficiencia.
Por lo tanto, junto con la recursividad, diría que ayuda a aprender a equilibrar la carga de la CPU en los procesadores paralelos.
... o si el equipo no está disponible, probablemente te enseñe la paciencia Zen. :)
¡Gran idea! Creo que codificar fractales es un excelente programa de tamaño "estudio" (estudio). Tiene algunas características agradables de esta manera: generalmente no requerirá mucho código de terceros, pueden implementarse en un período de tiempo razonablemente corto (y de complejidad) y también obtendrá algo agradable que al final verifica su trabajo. .
También hay un montón de problemas básicos tanto en matemáticas como en la implementación de algoritmos numéricos con los que te toparás si haces esto.
De algo tan simple como un generador básico de conjuntos de Mandelbrot, puedes ramificar en todo tipo de problemas como lo han mencionado los comentaristas. Sin embargo, incluso con solo eso, puedes aprender sobre las técnicas de optimización (¿por qué mi generador es tan lento?) Y los problemas numéricos (¿por qué no puedo hacer zoom aquí?), Pero también si quieres un poco de teoría del color (¿qué es L? un b * espacio de todos modos) y otros bits y piezas.
¡Que te diviertas!
La programación fractal le presentará los conceptos de recursión, iteración, programación de gráficos, procesamiento de imágenes y diseño de interfaz de usuario. Desde un punto de vista matemático, aprenderás sobre geometría, números complejos, transformaciones de Moebius (fractales kleinianos), transformación afín (fractales IFS), métodos de búsqueda de raíces (fractales de Newton).
Y además de todo esto, obtienes la recompensa de ver tus esfuerzos como resultado imágenes extrañas e inusuales.
Si eres un principiante, tal actividad seguramente te ayudará a mejorar tus habilidades. Además de programar las visualizaciones fractales dependiendo del tipo de fractal y el objetivo que establezcas, puedes darte algunas habilidades o conocimientos específicos como:
- trabajando con gráficos, procesamiento de imágenes;
- entender recursividad y estructuras recursivas;
- técnicas de optimización;
- optimizaciones de programa de bajo nivel;
- entender cómo funciona la computadora (por ejemplo, por qué la resolución normalmente estaría limitada -> precisión de coma flotante y acumulación de error);
- programación paralela;
- alguna mejora matemática y ampliar su rango de interés;
- comprender varias tecnologías (por ejemplo, puede codificar el conjunto de Mandelbrot en PixelBender, que es realmente rápido, ya que puede ejecutarse en una GPU);
- comprender algoritmos de compresión complejos (por ejemplo, algún tipo de compresión fractal);
- creatividad (por ejemplo, inventas tu propio algoritmo de coloreo de conjunto fractal);
- mucho mas mas :)
De hecho, es un campo versátil e interesante, un montón de cosas para explorar y aprender. Solía dibujar fractales mucho :)
Fractales es un tema muy intelectualmente interesante y bueno, incluso la implementación más simple te hará aprender sobre números matemáticos complejos, generación de gráficos, escalado de imágenes y programación general.