martes, 30 de agosto de 2016

Test de Primalidad III


  Test de Primalidad de Solovay-Strassen




Supongamos que n es un entero positivo impar, nuestra intención es verificar si n, es primo o compuesto, elegimos k enteros, tal que 0 < b < n aleatorios. Para cada b, primero, calculamos los dos términos de 

si el segundo término, no es congruente módulo n, entonces llegamos a la conclusión de que n es compuesto y paramos el proceso.
En caso contrario, seleccionamos otro valor de b, si la expresión anterior es válida para todos los k aleatorios de b, entonces la probabilidad de que n sea compuesto a pesar de pasar todas las pruebas es de a los sumo de 1/2k, por lo que este test es de tipo probabilístico, por lo que si n supera el test, a lo sumo podemos concluir que es probablemente primo.

Test de Primalidad de Miller-Rabin



El Test de primalidad de Miller-Rabin es un test de primalidad, es decir, un algoritmo para determinar si un número dado es primo, similar al test de primalidad de Fermat. Su versión original fue propuesta por G. L. Miller, se trata de un algoritmo determinista, pero basado en la no demostrada hipótesis generalizada de Riemann; Michael Oser Rabin modificó la propuesta de Miller para obtener un algoritmo probabilístico incondicional.
Supongamos que n es un entero impar, del cual queremos saber si es primo o compuesto, sea t un valor impar tal que , la forma de proceder es la siguiente:
Primero calculamos  bt (mod n), si obtenemos ± 1, entonces concluimos que n pasa el test que lo clasifica como pseudoprimo fuerte, para el valor de b usado, entonces seleccionamos otro valor aleatorio de b.
Posteriormente elevamos al cuadrado la expresión bt (mod n), y así sucesivamente hasta llegar al valor -1, entonces n pasa el test.
Sin embargo, si nunca obtenemos el valor -1, si alcanzamos

 donde:
entonces n falla el test y deducimos que n es compuesto.
Se puede demostrar que un número compuesto es clasificado "probable primo" en una iteración del algoritmo con una probabilidad inferior a 1/4; de hecho, en la práctica la probabilidad es mucho menor.

En resumen el test es siempre cierto si el número es compuesto, es decir en el caso de obtener una respuesta positiva sobre un número, hay que considerarlo como "posible primo", por lo que como en los diagnóstico médicos es mejor una segunda opinión, es decir usar más de un test de primalidad

El algoritmo para implementar el test de Miller-Rabin lo podeis encontrar en la siguiente dirección:


 donde lo podeis encontrar en varios lenguajes de programación

os dejo el código correspondiente a Mathematica como función :


MillerRabin[n_, k_] := Module[{d = n - 1, s = 0, test = True},
  (* n es el numero a estudiar y k las iteraciones a realizar*)
  While[Mod[d, 2] == 0, d /= 2; s++] Do[a = RandomInteger[{2, n - 1}];
     x = PowerMod[a, d, n];
    If[x != 1,
     For[r = 0, r < s, r++, If[x == n - 1, Continue[]];
      x = Mod[x*x, n];];
     If[x != n - 1, test = False];];, {k}];
  Print[test]]
(* el problema de este test es que los que no pasan el test no son \
primos, pero los que lo pasan pueden ser cumpuestos *)


Generamos aleatoriamente enteros grandes

numerointeger = RandomInteger [{10^200, 10^201}];
Print ["El número entero aleatorio es ", numerointeger];


 y los podemos comprobar con la funcion que implementa el test :

 MillerRabin[numero entero, 1000] 

Mathematica también implementa el método con la función PrimeQ[numero entero], por lo que :

PrimeQ[numero entero]

Podemos generar números enteros aleatorios y comprobar las dos funciones a ver que tal.

Mathematica también es capaz de generar números primos aleatorios, con la función:

RamdomPrime[{limite inferior,limite superior}]


lunes, 29 de agosto de 2016

Sobre la obra fractal de Jackson Pollock




El artista Jackson Pollock , nació en Cody, Wyoming 28 de enero de 1912 y murió en Springs Nueva York el 12 de agosto de 1956) desarrolló un arte consistente en colocar un lienzo sobre el suelo  sobre este soltar chorretones sobre su superficie , añadiendo unas capas sobre otras y más colores unos sobre otros, el resultado era un estallido de impresionismo abstracto, esta técnica conmocionó el mundo del arte de su época, fue nombrado por la revista Life artista del siglo, otros en cambio se burlaron de la obra y del propio autor presentándolo como a un lunático alcohólico, las formas que aparecen en sus obras aparentemente caóticas aparecen atrayentes e irresistibles, parecen captar algo salvaje del mundo natural.
Algunos autores han intentado imitar a Pollock, pero no han conseguido llegar a reproducir la magia que emanaba de sus obras.


Una de sus obras
Nadie podía explicarse lo que hacía que las obras de Pollock resultasen tan atractivas, el artista y físico Richard Taylor inventó una máquina que imitaba el estilo de pintura de Pollock, que consiste en un péndulo impulsado al que se golpea con un dispositivo imprimiéndole un movimiento caótico, reproduce incluso una de las características de sus obras y es que se ven los mismos patrones no importa a la distancia a la que nos encontremos del cuadro, una característica de su obra es que todos los patrones son iguales aunque sus escalas sean diferentes, se trata de una propiedad llamada fractal.

Si no vemos los bordes del lienzo no podemos saber a la distancia a la que estamos del lienzo.

El pintor fue capaz de reproducir en todas sus obras el mismo nivel de complejidad independientemente de la escala, es la cualidad fractal de su obra.

Hay incluso una película sobre este pintor  http://www.filmaffinity.com/es/film162144.html