Factor Primo




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace FactoresPrimosNumero_Forms
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int numero, resi, k;
            string cadena = textBox2.Text;

            numero = int.Parse(textBox1.Text);
            k = 2;

            if (!int.TryParse(textBox1.Text, out numero)) numero = -1;
            if (numero < 2)
            {
                MessageBox.Show("Numeros negativos NO. \r\n Superiores a 2 por favor");
                textBox1.Clear();
                return;
            }

            while ((numero != 1))
            {
                resi = numero % k;
                if ((resi == 0))
                {
                    cadena += (k.ToString() + " x ");
                    textBox2.Text = cadena.Remove(cadena.Length - 2);
                    numero = numero / k;
                }
                else
                {
                    k = k + 1;
                }
            }

        }

Conjunto de Mandelbrot




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Mandel_I
{
    public partial class Form1 : Form
    {
        static double currentmaxr = 0;
        static double currentminr = 0;
        static double currentmaxi = 0;
        static double currentmini = 0;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Bitmap img = MandelbrotSet(pictureBox1, 2, -2, 2, -2);
            pictureBox1.Image = img;
        }

        static Bitmap MandelbrotSet(PictureBox pictureBox1, double maxr, double minr, double maxi, double mini)
        {
            currentmaxr = maxr;
            currentmaxi = maxi;
            currentminr = minr;
            currentmini = mini;
            Bitmap img = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            double zx = 0;
            double zy = 0;
            double cx = 0;
            double cy = 0;
            double xjump = ((maxr - minr) / Convert.ToDouble(img.Width));
            double yjump = ((maxi - mini) / Convert.ToDouble(img.Height));
            double tempzx = 0;
            int loopmax = 1000;
            int loopgo = 0;
            for (int x = 0; x < img.Width; x++)
            {
                cx = (xjump * x) - Math.Abs(minr);
                for (int y = 0; y < img.Height; y++)
                {
                    zx = 0;
                    zy = 0;
                    cy = (yjump * y) - Math.Abs(mini);
                    loopgo = 0;
                    while (zx * zx + zy * zy <= 4 && loopgo < loopmax)
                    {
                        loopgo++;
                        tempzx = zx;
                        zx = (zx * zx) - (zy * zy) + cx;
                        zy = (2 * tempzx * zy) + cy;
                    }
                    if (loopgo != loopmax)
                        img.SetPixel(x, y, Color.FromArgb(loopgo % 128 * 2, loopgo % 32 * 7, loopgo % 16 * 14));
                    else
                        img.SetPixel(x, y, Color.Black);

                }
            }
            return img;

        }
    }
}



Transcribo el articulo de A.K. Devdney, en el que se desarrolla el Conjunto de Mandelbrot, publicado en la revista de Investigación y Ciencia de Enero 1988,

Articulo original en PDF:

https://www.scientificamerican.com/media/inline/blog/File/Dewdney_Mandelbrot.pdf

EL OBJETO MAS COMPLEJO DE LA MATEMÁTICA

"El conjunto de Mandelbrot cavila en silente complejidad, en el centro de una vasta lámina bidimensional de números, llamada plano complejo. Cuando a estos números se les aplica reiteradamente una cierta operación, los situados en el exterior del conjunto huyen, despavoridos, hacia el infinito. Los números del interior permanecen en él, donde danzan y vagabundean de un lado a otro. En la proximidad de la frontera, erráticos vaivenes de minuciosa coreografía, señalan el comienzo de la inestabilidad. Acontece aquí una infinita regresión de minucioso detalle, que nos deja estupefactos por su variedad, su complejidad y su insólita belleza.

El conjunto recibe su nombre en honor de Benoit Mandelbrot, investigador numerario del Centro de Investigaciones Thomas J. Watson de la IBM en Yorktown Heights, Nueva York. A partir de sus trabajos con forma geométricas, Mandelbrot ha desarrollado un campo llamado geometría fractal, estudio matemático de formas que tienen dimensión fraccionaria. En particular, la frontera del conjunto de Mandelbrot es una fractal, aunque también es mucho mas.


Agregación de Difusión Limitada - ADL // Movimiento Browniano





using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ADL_II_Forms
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int numeroparticulas;

        private void button1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
       
      private void Form1_Load(object sender, EventArgs e) { }
       
        private void button2_Click(object sender, EventArgs e)
        {
            Bitmap imagen =  ADL(pictureBox1, 250, numeroparticulas);    //.Save("arbol.png");
            pictureBox1.Image = imagen;
            numeroparticulas = int.Parse(textBox1.Text);
        }
       
        static Bitmap ADL(PictureBox pictureBox1, int tamaño, int numeroparticulas)
        {
            Bitmap imagen = new Bitmap(tamaño, tamaño);
            Rectangle bounds = new Rectangle { X = 0, Y = 0, Size = imagen.Size };
            using (Graphics g = Graphics.FromImage(imagen))
            {
                g.Clear(Color.Black); //color de fondo
            }
            Random rnd = new Random();
            imagen.SetPixel(rnd.Next(tamaño), rnd.Next(tamaño), Color.White); //color de los  puntos
            Point pt = new Point(), newpt = new Point();
            for (int i = 0; i < numeroparticulas; i++)
            {
                pt.X = rnd.Next(tamaño);
                pt.Y = rnd.Next(tamaño);
                do
                {
                    newpt.X = pt.X + rnd.Next(-1, 2);
                    newpt.Y = pt.Y + rnd.Next(-1, 2);
                    if (!bounds.Contains(newpt))
                    {
                        pt.X = rnd.Next(tamaño);
                        pt.Y = rnd.Next(tamaño);
                    }
                    else if (imagen.GetPixel(newpt.X, newpt.Y).R > 0)
                    {
                        imagen.SetPixel(pt.X, pt.Y, Color.White);
                        break;
                    }
                    else
                    {
                        pt = newpt;
                    }
                } while (true);
            }
            return imagen;
        }      
    }
}


El movimiento browniano es el movimiento aleatorio que se observa en las partículas que se hallan en un medio fluido (líquido o gas), como resultado de choques contra las moléculas de dicho fluido.

Este fenómeno de transporte recibe su nombre en honor al escocés Robert Brown, biólogo y botánico. En 1827, mientras miraba a través de un microscopio a las partículas atrapadas en las cavidades dentro de un grano de polen en el agua, señaló que las partículas se movían a través del líquido; pero no fue capaz de determinar los mecanismos que provocaron este movimiento. Los átomos y las moléculas habían sido teorizadas como componentes de la materia, y Albert Einstein publicó un artículo en 1905, considerado por él como el Annus Mirabilis ("año maravilloso", en latín) donde explicó con todo detalle cómo el movimiento que Brown había observado era el resultado del polen siendo movido por moléculas de agua individuales. Esta explicación sirvió como prueba convincente de que existen los átomos y moléculas, y fue verificado experimentalmente por Jean Perrin en 1908. Perrin fue galardonado con el Premio Nobel de Física en 1926 por su trabajo sobre la estructura discontinua de la materia (Einstein había recibido el premio cinco años antes por sus servicios a la física teórica ​​con especial mención al efecto fotoeléctrico). La dirección de la fuerza de bombardeo atómico está cambiando constantemente, y en diferentes momentos, la partícula es golpeada más en un lado que en otro, lo que lleva a la naturaleza aleatoria del movimiento.

El movimiento browniano se encuentra entre los procesos estocásticos más simples, y es afín a otros dos procesos estocásticos más simples y complejos: el camino aleatorio y el teorema de Donsker. Esta universalidad está estrechamente relacionada con la universalidad de la distribución normal. En ambos casos, a menudo es la conveniencia matemática, más que exactitud de los modelos, lo que lleva al uso de la distribución normal.

Tanto la difusión como la ósmosis se basan en el movimiento browniano.


El poema científico Sobre la Naturaleza de las cosas, del romano Lucrecio (60 a. C.), incluye la notable descripción de un movimiento browniano de partículas de polvo desde los versos 113 hasta el 140. El autor presentó este hecho como prueba de la existencia de los átomos:

Observa lo que acontece cuando rayos de sol son admitidos dentro de un edificio y cómo arroja la luz sobre los lugares oscuros. Puedes ver la multitud de pequeñas partículas moviéndose en un sinnúmero de caminos... su baile es un indicio de movimientos subyacentes de materia escondidos de nuestra vista... eso origina el movimiento de los átomos en sí mismos (p.e., espontáneamente). Entonces los pequeños organismos que son eliminados del impulso de los átomos son puestos en marcha por golpes invisibles y a su vez en contra de unos diminutos cañones. Así, el movimiento de los átomos emerge gradualmente de un nivel del sentido, que estos cuerpos están en movimiento como vemos en el rayo de sol, movidos por soplos que parecen invisibles.

Sobre la naturaleza de las cosas, Lucrecio

Aunque el movimiento de mezcla de partículas de polvo es causado principalmente por las corrientes de aire, el brillo y el ajetreo de las partículas es, ciertamente, producto de la dinámica browniana

Jan Ingenhousz describió el movimiento irregular de partículas de carbón pulverizadas en la superficie del alcohol en 1785. No obstante, el descubrimiento del movimiento browniano se atribuye tradicionalmente al botánico Robert Brown en 1827. Se cree que Brown estuvo estudiando al microscopio partículas de polen de la planta Clarkia pulchella flotando en el agua. Dentro de las vacuolas de los granos de polen observó diminutas partículas con movimientos nerviosos. Al repetir el experimento con partículas de polvo, concluyó que el movimiento no se debía a que las partículas de polen estuvieran "vivas", aunque no explicó el origen del movimiento.

El primero en describir matemáticamente el movimiento browniano fue Thorvald N. Thiele en 1880, en un documento sobre el método de los mínimos cuadrados. Fue seguido independientemente por Louis Bachelier en 1900, en su tesis doctoral La teoría de la especulación, en la que se presenta un análisis estocástico de acción y opción de mercados. El modelo del movimiento browniano de las acciones de mercado es citado frecuentemente, pero Benoit Mandelbrot rechazó su aplicación al movimiento de los precios de las acciones, en parte porque son discontinuos.

Sin embargo, fue el estudio independiente de Albert Einstein en su artículo de 1905 (Über die von der molekularischen Theorie der Wärme geforderte Bewegung von in ruhenden Flüssigkeiten suspendierten Teilchen / Sobre el movimiento postulado por la teoría cinética molecular del calor de pequeñas partículas suspendidas en un líquido estacionario) en el que mostró la solución a los físicos, como una forma indirecta de confirmar la existencia de átomos y moléculas.

En esa época la naturaleza atómica de la materia aún era una idea controvertida. Einstein y Marian Smoluchowski dedujeron que, si la teoría cinética de los fluidos era correcta, entonces las moléculas de agua tendrían movimientos aleatorios. Por lo tanto, las partículas pequeñas podrían recibir un número aleatorio de impactos, de fuerza aleatoria y de direcciones aleatorias, en cortos períodos de tiempo. Este bombardeo aleatorio por las moléculas del fluido podría ser suficiente para que las partículas pequeñas se moviesen de la manera exacta que Brown había descrito. Theodor Svedberg hizo importantes demostraciones del movimiento browniano en coloides, así como Felix Ehrenhaft lo hizo con partículas de plata en la atmósfera terrestre. Jean Perrin también realizó experimentos para verificar los modelos matemáticos, y al publicar sus resultados finales se puso fin a dos mil años de disputa sobre la realidad de las moléculas y los átomos.


https://es.wikipedia.org/wiki/Movimiento_browniano



Entropía de Shannon

"El hombre más importante del que probablemente no hayas oído hablar jamás."



En el ámbito de la teoría de la información la entropía, también llamada entropía de la información y entropía de Shannon (en honor a Claude E. Shannon), mide la incertidumbre de una fuente de información.

La entropía también se puede considerar como la cantidad de información promedio que contienen los símbolos usados. Los símbolos con menor probabilidad son los que aportan mayor información; por ejemplo, si se considera como sistema de símbolos a las palabras en un texto, palabras frecuentes como «que», «el», «a» aportan poca información, mientras que palabras menos frecuentes como «corren», «niño», «perro» aportan más información. Si de un texto dado borramos un «que», seguramente no afectará a la comprensión y se sobreentenderá, no siendo así si borramos la palabra «niño» del mismo texto original. Cuando todos los símbolos son igualmente probables (distribución de probabilidad plana), todos aportan información relevante y la entropía es máxima.

El concepto entropía es usado en termodinámica, mecánica estadística y teoría de la información. En todos los casos la entropía se concibe como una «medida del desorden» o la «peculiaridad de ciertas combinaciones». La entropía puede ser considerada como una medida de la incertidumbre y de la información necesarias para, en cualquier proceso, poder acotar, reducir o eliminar la incertidumbre. Resulta que el concepto de información y el de entropía están básicamente relacionados entre sí, aunque se necesitaron años de desarrollo de la mecánica estadística y de la teoría de la información antes de que esto fuera percibido.

Claude Elwood Shannon (30 de abril de 1916 – 24 de febrero de 2001) fue un matemático, ingeniero eléctrico y criptógrafo estadounidense recordado como «el padre de la teoría de la información».

Shannon es reconocido por haber fundado el campo de la teoría de la información con la publicación Una teoría matemática de la comunicación, que supuso un hito en 1948. Es quizás igualmente conocido por haber sentado las bases de la teoría del diseño del ordenador digital y el circuito digital en 1937. Con 21 años, mientras realizaba su maestría en el Massachusetts Institute of Technology (MIT), demostró con su tesis, que las aplicaciones electrónicas de álgebra booleana podrían construir cualquier relación lógico-numérica. Shannon contribuyó asimismo al campo del criptoanálisis para la defensa de Estados Unidos durante la Segunda Guerra Mundial, con trabajos sobre el descifrado de códigos y la seguridad en las telecomunicaciones.

Claude Elwod Shannon definió una forma de medir la cantidad de información que contiene una variable aleatoria, es lo que se conoce como Entropía de Shannon y su formula es la siguiente:


Esta obra está bajo una: Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional. Autor: Ondiz Zarraga
 https://ondahostil.wordpress.com/2015/04/16/lo-que-he-aprendido-entropia-de-shannon/




                       The Man Who Turned Paper Into Pixels from Adam Westbrook on Vimeo.


La entropía definida por Shannon , referida a la teoría de la información, hace referencia a la cantidad media de información que contiene una variable aleatoria (psicológica) o, en particular, una fuente transmisión binaria. La información que aporta un determinado valor, xi, de una variable aleatoria discreta X, se define como:

I(xi) = log2(1/p(xi))

cuya unidad es el bit si se utiliza el logaritmo en base 2 (por ejemplo, cuando se emplea el logaritmo neperiano o natural se habla de nats).

La entropía o información media de la variable aleatoria discreta, X, se determina como la información media del conjunto de valores discretos que puede adoptar (también medida en bits):

H(x) = Σip(xi) •log2(1/p(xi))



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace EntropíaShannon_I
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        public static double logaritmo(double num)
        {
            return Math.Log(num) / Math.Log(2);
        }
        private void button2_Click(object sender, EventArgs e)
        {

            string entrada = textBox1.Text;
            double entropia = 0;
            Dictionary<char, double> tabla = new Dictionary<char, double>();


Números Catalán del Triangulo de Pascal





using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace CatalanNumberTrianguloPascal_I
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int limite;

        private void button1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            int n = limite;

            limite = int.Parse(textBox1.Text);

            List<int> t = new List<int>() { 0, 1 };

            for (int i = 1; i <= n; i++)
            {
                for (var j = i; j > 1; j--) t[j] += t[j - 1];

                t.Add(t[i]);

                for (var j = i + 1; j > 1; j--) t[j] += t[j - 1];
                {
                    listBox1.Items.Add((((i == 1) ? "                  " : "                  ") + (t[i + 1] - t[i])) + "\r\n");
                }

            }

        }
    }
}


Número de Munchausen




Un número de Munchausen (o Münchhausen) es un número natural n el cual la suma de sus dígitos (en base 10), elevados a la misma potencia de ellos mismos es el mismo número es decir n. En otras palabras, si el número tiene la representación decimal:




Entonces:





El término fue acuñado por el ingeniero de software y matemático holandés Daan van Berkel en 2009. El nombre se debe a que cada dígito está "elevado" por si mismo, esto evoca la historia de Barón Munchausen que se elevo a si mismo hacia arriba jalando su propia coleta. Los números narcisistas siguen una regla similar, pero en el caso de los números narcisistas la potencia de los dígitos es fija, siendo elevados a la potencia del número de dígitos en el número. Esto es una explicación adicional para el nombre, dado que el Barón Münchhausen era un conocido narcisista.

Pensando rápido, posiblemente encontréis el primer número Münchhausen, el 1. Pero si seguís probando, estaréis mucho tiempo hasta encontrar el siguiente número Münchhausen. De hecho, si no os valéis de un ordenador, posiblemente pasarían días y mucho aburrimiento hasta que llegaseis al número 3435 (siempre hablando en base 10).

Estos números en muchas ocasiones se considera un grupo dentro de los números narcisistas, agrupándolos con los números de Armstrong (los que normalmente son llamados narcisistas), los números de Dudeney o los números de Friedman.

Un ejemplo es:







using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MunchausenForms_I
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int limite;

        private void button1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }