public RedHopfield(double[][] vectoresInformacion)
        {
            int N = vectoresInformacion[0].Length;

            int i, j, k;

            // Crea una red de tamaño n, basado en el tamaño de la información
            // a memorizar
            neuronas = new Neurona[N];

            // Crea las neuronas de la red con sus enlaces y pesos
            for (i = 0; i < N; i++)
            {
                neuronas[i]        = new Neurona("Neurona " + (i + 1));
                neuronas[i].Peso   = new double[N - 1];
                neuronas[i].Enlace = new Neurona[N - 1];
            }

            for (i = 0; i < N; i++)
            {
                for (j = 0; j < i; j++)
                {
                    neuronas[i].Enlace[j] = neuronas[j];
                }
                for (j = i + 1; j < N; j++)
                {
                    neuronas[i].Enlace[j - 1] = neuronas[j];
                }
            }

            // Entrena la red neuronal
            entrenar(vectoresInformacion);
        }
        private void InicializarMatrizDeNeuronas(int N)
        {
            int i, j;

            // Crea una red de tamaño n, basado en el tamaño de la información
            // a memorizar
            neuronas = new Neurona[N];

            // Crea las neuronas de la red con sus enlaces y pesos
            for (i = 0; i < N; i++)
            {
                neuronas[i]        = new Neurona("Neurona " + (i + 1));
                neuronas[i].Peso   = new double[N - 1];
                neuronas[i].Enlace = new Neurona[N - 1];
            }

            // Engancha los enlaces entre neuronas.
            for (i = 0; i < N; i++)
            {
                for (j = 0; j < i; j++)
                {
                    neuronas[i].Enlace[j] = neuronas[j];
                }
                for (j = i + 1; j < N; j++)
                {
                    neuronas[i].Enlace[j - 1] = neuronas[j];
                }
            }
        }