Page 1

UNIVERSIDAD MAYOR DE SAN ANDRES Facultad de Ciencias Puras y Naturales Postgrado en Informática Matemática y Encriptación

Desarrollo de un Software Utilitario a Partir de la Teoría “Seno Mágico: Los Números Primos” Trabajo Final

Presentado a:

Dr. Henri Claude Thonon

Presentado por: Roger Saravia Aramayo

La Paz, Bolivia – 30 de Junio de 2008


Resumen En éste proyecto se desarrolla en Visual Basic 32-bits para Windows NT un software utilitario para el cálculo sobre los números primos partiendo de la obra “Seno Mágico: Los Números Primos” propuesta por el autor. Primero, se plantea lógicamente el problema. Luego, se hace una revisión breve pero esencial del marco teórico. Enseguida, se desarrolla la parte práctica desglosando el código fuente programado a partir de las distintas expresiones matemáticas presentadas en la parte teórica. Usando dicho software, se analizan casos de estudio representativos que involucran a las fórmulas matemáticas más importantes así como a números primos seleccionados a partir de la bibliografía. Finalmente, se presentan algunas conclusiones importantes.

Palabras Clave NÚMEROS NATURALES, NÚMEROS PRIMOS, TEORÍA DE NÚMEROS, MATEMÁTICA Y ENCRIPTACIÓN, FACTORES, SENO MÁGICO, EXPRESIONES MATEMÁTICAS, EVALUACIÓN DE UNA EXPRESIÓN, EXPRESIÓN BASE SINUSOIDAL, PRUEBA DE DIVISIBILIDAD, PRUEBA DE PRIMALIDAD, SUMA DE PRIMOS, PRODUCTO DE PRIMOS, CANTIDAD DE PRIMOS, PROGRAMA DE COMPUTADORA, PROGRAMACIÓN DE FUNCIONES, CICLO DE CÁLCULO, PRÁCTICA IMPLEMENTACIÓN


Índice

1

INTRODUCCIÓN......................................................................................................................................................... 2 1.1 1.2

ESCENARIO ............................................................................................................................................................. 2 PROBLEMA Y ABORDAJE DEL PROBLEMA ............................................................................................................... 2

2

OBJETIVOS .................................................................................................................................................................. 2

3

JUSTIFICACIÓN.......................................................................................................................................................... 2

4

MARCO TEÓRICO...................................................................................................................................................... 3 4.1

SENO MÁGICO: LOS NÚMEROS PRIMOS .................................................................................................................. 3

5

DESARROLLO PRÁCTICO....................................................................................................................................... 5

6

CASOS DE ESTUDIO .................................................................................................................................................. 6 A. B. C. D. E.

7

FÓRMULA DE DIVISIBILIDAD ....................................................................................................................................... 6 PRUEBA DE PRIMALIDAD ............................................................................................................................................. 7 CANTIDAD DE NÚMEROS PRIMOS ................................................................................................................................ 8 SUMA DE NÚMEROS PRIMOS........................................................................................................................................ 9 PRODUCTO DE NÚMEROS PRIMOS................................................................................................................................ 9 CONCLUSIONES ....................................................................................................................................................... 10

REFERENCIAS.................................................................................................................................................................... 11

1


1

Introducción

1.1

Escenario El escenario de éste proyecto se extiende en la obra “Seno Mágico: Los Números Primos” propuesta por el autor dentro del campo de la teoría de números que se aplica a su vez en el área de la matemática y encriptación de las ciencias de la computación.

1.2

Problema y Abordaje del Problema Un problema identificado es la necesidad de un programa de computadora que permita realizar algunos cálculos y resolver algunos casos de estudio a partir de las expresiones matemáticas construidas en dicho estudio sobre los números primos. Se abordará éste problema mediante la programación en Visual Basic de un software Windows NT 32-bits a partir de dichas expresiones matemáticas.

2

3

Objetivos ƒ

Programar la expresión matemática para la prueba de divisibilidad.

ƒ

Programar la expresión matemática para la prueba de primalidad.

ƒ

Programar la expresión matemática para la suma de números primos.

ƒ

Programar la expresión matemática para el producto de números primos.

ƒ

Programar la expresión matemática para la cantidad de números primos.

ƒ

Resolver casos de estudio representativos usando el software desarrollado.

Justificación La justificación es mayormente tecnológica porque con el desarrollo y aplicación de éste software se pretende evidenciar de modo práctico la teoría: “Seno Mágico: Los Números Primos”.

2


4

Marco Teórico

4.1

Seno Mágico: Los Números Primos Partiendo de la función seno se puede lograr una poderosa expresión base que permite la construcción de expresiones reveladoras con relación a los números primos. Dados dos números naturales a y b, ésta expresión base permite verificar si b es factor de a:

⎧0 si b es factor de a sign sin 2 (aπ / b ) = ⎨ ⎩1 si b no es factor de a

(

)

(1)

Un número primo x es un numero natural x que no tiene ningún factor entre 2 y x − 1 , inclusive. Aplicando la productoria de la expresión (1) en este rango, se tiene:

⎧0 ∏ sign (sin (xπ / i )) = ⎨1 x −1

2

i =2

si x no es número primo si x es número primo

(2)

Ahora se va a modificar a partir de la expresión (1) para invertir sus salidas y para que más adelante permita la construcción de una expresión más avanzada que la (2). Entonces:

⎧0 si b no es factor de a 1 − sign sin 2 (aπ / b ) = ⎨ ⎩1 si b es factor de a

(

)

(3)

Ya se recordó que un número primo x es aquel que no tiene ningún factor entre 2 y x − 1 , inclusive. Aplicando la sumatoria de la expresión (3) en este rango, se tiene:

⎧0 ∑ (1 − sign (sin (xπ / i ))) = ⎨ f x −1

2

i =2

si x es número primo si x no es primo y f es el número de factores que tiene x

(4)

La gráfica (i1) corresponde a la expresión (4) para los primeros treinta y cinco números naturales. Respecto a ésta gráfica, un par de apuntes:

1) Los puntos sobre el eje x se corresponden con los números primos.

3


2) Cualquier otro punto se corresponde con un x no primo. Por ejemplo, para x = 12 se tiene f = 4 ; esto indica que 12 tiene cuatro factores a excepción de la unidad y de si mismo. Y ciertamente, sus cuatro factores son: 2, 3, 4 y 6.

(i1)

A partir de la expresión (2) se puede construir una expresión que da la cantidad de números primos existentes entre 2 y n, inclusive:

⎛ i −1 ⎞ ⎜ ∏ sign sin 2 (iπ / j ) ⎟ ∑ ⎜ ⎟ i =2 ⎝ j =2 ⎠ n

(

)

(5)

Modificando la (5) se puede llegar a una expresión que da la sumatoria de los primos existentes entre 2 y n, inclusive:

⎞ ⎛ i −1 ⎜ i ⋅ ∏ sign sin 2 (iπ / j ) ⎟ ∑ ⎟ ⎜ i =2 ⎝ j =2 ⎠ n

(

)

(6)

Y la expresión (7) nos da el producto de los primos existentes entre 2 y n, inclusive:

4


n

∏i

⎛ ⎜ ⎜ ⎝

i −1

j=2

∏ sign (sin 2 (iπ / j ))⎟⎟

(7)

i =2

En todo este desarrollo es interesante observar que los números primos se vinculan con la función del seno.

5

Desarrollo Práctico Primero, se ha programado una función que retorna el valor de la constante PI, una función de redondeo y una función común f1; esto, se muestra en el listado de a continuación:

Function pi() pi = 4 * Atn(1) End Function Function round(v, d) t1 = 10 ^ d round = CLng(v * t1) / t1 End Function Function f1(x, y) t = Sin(x * pi() / y) f1 = round(t, 4) End Function

Luego, se ha programado un conjunto de funciones para el cálculo de las expresiones (1) a la (7) según se muestra en el listado de a continuación:

⎧0 si b es factor de a sign sin 2 (aπ / b ) = ⎨ ⎩1 si b no es factor de a

(

Function expr1(a, b) expr1 = Sgn(f1(a, b) ^ 2) End Function Function expr2(x) p=1 For i = 2 To x - 1 p = p * expr1(x, i) Next i expr2 = p End Function Function expr3(a, b) expr3 = 1 - expr1(a, b) End Function

)

⎧0 ∏ sign(sin (xπ / i )) = ⎨1 x −1

2

i =2

si x no es número primo si x es número primo

⎧0 si b no es factor de a 1 − sign sin 2 (aπ / b ) = ⎨ ⎩1 si b es factor de a

(

)

5


Function expr4(x) s=0 For i = 2 To x - 1 s = s + expr3(x, i) Next i expr4 = s End Function Function expr5(n) s=0 For i = 2 To n p=1 For j = 2 To i - 1 p = p * expr1(i, j) Next j s=s+p Next i expr5 = s End Function Function expr6(n) s=0 For i = 2 To n p=1 For j = 2 To i - 1 p = p * expr1(i, j) Next j s=s+i*p Next i expr6 = s End Function Function expr7(n) p=1 For i = 2 To n q=1 For j = 2 To i - 1 q = q * expr1(i, j) Next j p=p*i^q Next i expr7 = p End Function

6

Casos de Estudio

A.

Fórmula de Divisibilidad

⎧0 ∑ (1 − sign(sin (xπ / i ))) = ⎨ f x −1

si x es número primo

2

i =2

i −1

j =2

si x no es primo

∑ ⎜⎜ ∏ sign(sin (iπ / j ))⎟⎟ n

i =2

2

⎛ i −1 ⎞ ⎜ i ⋅ ∏ sign sin 2 (iπ / j ) ⎟ ∑ ⎜ ⎟ i=2 ⎝ j =2 ⎠

(

n

n

∏i

⎛ ⎜ ⎜ ⎝

)

i −1

j=2

∏ sign (sin 2 (iπ / j ))⎟⎟

i =2

Usando la expresión (3), determinar si el entero 510510 es factor de 6469693230.

6


Para esto, se elige la expresión (3) del combo de fórmulas y se introducen los anteriores naturales según se ilustra a continuación. Luego, se presiona “Calcular” y se obtiene un valor de 1 (uno) como resultado de la evaluación de la expresión; lo cual confirma que, 510510 es factor de 6469693230. Y evidentemente, 6469693230 es el producto de 510510 por 12673.

Ilustración i2. Cuadro de diálogo para el caso de estudio A.

B.

Prueba de Primalidad Usando la expresión (4), determinar si el natural 15485863 es un número primo.

Primero, se elige la expresión (4) del combo de fórmulas matemáticas y se introduce el valor anterior según se muestra a continuación. Luego, se presiona el botón “Calcular”, se espera un momento y se obtiene un valor de 0 (cero) como resultado de la evaluación de la expresión; lo cual implica que 15485863 sí es un número primo.

7


Ilustración i3. Cuadro de diálogo para el caso de estudio B.

C.

Cantidad de Números Primos Usando la expresión (5), determinar la cantidad de primos existentes hasta el entero 1000 inclusive. Primero, se elige la expresión (5) del combo de fórmulas y se introduce el valor 1000 según se muestra a continuación. Se presiona el botón “Calcular”, se espera y se obtiene un valor de 168 como resultado de la evaluación de la expresión; lo cual indica que existen 168 números primos hasta el natural 1000 inclusive. Esto es fácilmente verificable mediante revisión bibliográfica.

Ilustración i4. Cuadro de diálogo para el caso de estudio C.

8


D.

Suma de Números Primos Usando la expresión (6), calcular la suma de todos los primos existentes hasta el entero 1000 inclusive. Primero, se elige la expresión (6) del combo de fórmulas y se introduce el valor 1000 según se muestra a continuación. Se presiona “Calcular”, se espera y se obtiene un valor de 76127 como resultado de la evaluación de la expresión; lo cual indica que 76127 es el valor de la suma de los 168 números primos existentes hasta el natural 1000 inclusive. Esto es fácilmente verificable mediante revisión bibliográfica.

Ilustración i5. Cuadro de diálogo para el caso de estudio D.

E.

Producto de Números Primos Usando la expresión (7), calcular el producto de todos los números primos existentes hasta el entero 35 inclusive.

Para esto, se elige la expresión (7) del combo de fórmulas y se introduce el valor 35 según se muestra a continuación. Se presiona el botón de comando “Calcular”, se espera y se obtiene 200560490130 como resultado de la evaluación de la expresión; lo cual implica que 200560490130 es el producto total de los 11 números primos existentes hasta el natural 35 inclusive. Esto es fácilmente verificable mediante revisión bibliográfica. Nótese que la expresión (7) produce números muy grandes de manera bastante rápida.

9


Ilustración i6. Cuadro de diálogo para el caso de estudio E.

7

Conclusiones La obra “Seno Mágico: Los Números Primos” se basa en una expresión básica sinusoidal que a su vez puede ser empleada para la prueba de divisibilidad entre dos naturales. Todas las expresiones matemáticas de dicha teoría se construyen sucesivamente a partir de ésta expresión básica. Aunque fuese posible definir una función unitaria en vez de una expresión base sinusoidal, el desafío y contribución de ésta obra radica en la inclusión de la función trigonométrica del seno. Una de las expresiones más útiles es la (4) porque brinda una opción de prueba de primalidad que retorna 0 (cero) cuando el natural en cuestión es primo y que retorna otro valor correspondiente a la cantidad de divisores (a excepción de 1 y de sí mismo) cuando el natural en cuestión no es primo. Una ventaja que puede apreciarse en todas éstas expresiones, radica en su práctica implementación en programas de computadora como se apreció en éste documento. Las fórmulas o expresiones matemáticas expuestas y probadas en éste documento requieren un ciclo de cálculo que hace uso de todos los naturales precedentes al número en cuestión; razón por la cual, son expresiones ineficientes así como están. Quizá con matemáticas más avanzadas se puedan lograr simplificaciones importantes en estas expresiones para que puedan volverse más eficientes. Como se pudo apreciar en los casos de estudio, éstas fórmulas retornan valores certeros dentro del rango numérico disponible según la plataforma; es decir, el tipo de datos más extenso disponible en un cierto lenguaje de programación como el Visual Basic 32-bits es aún insuficiente cuando se trata del cálculo sobre números primos; lo cual no es raro, porque el hecho de que los primos sean difíciles de alcanzar hace que sean muy usados en matemática y encriptación.

10


Referencias

ƒ

D. A. R. (2005)

“Números Primos”. [En red]. Disponible en: http://mimosa.pntic.mec.es/jgomez53/matema/conocer/primos.htm

ƒ

ROGER SARAVIA (2006)

“Seno Mágico: Los Números Primos”. Universidad Privada Boliviana (UPB). La Paz – Bolivia.

ƒ

PETER NORTON (2002)

"New Inside The PC". Segunda edición. SAMS. Indiana - USA.

ƒ

MICROSOFT CORP (1999) “Microsoft Visual Basic Programming System for Windows NT”. USA.

11

Desarrollo de un software utilitario a partir de la teoría seno mágico los números primos  
Desarrollo de un software utilitario a partir de la teoría seno mágico los números primos  
Advertisement