¿Puede haber una función generadora de números primos?

Anteriormente comenté una respuesta del usuario 9479463705020282020, pero pensé que debería escribir una respuesta. Hay cierta ambigüedad en la pregunta. Voy a suponer que te refieres dado n = 1, 2, .. n quieres una función que pueda generar el enésimo número primo, como Dan.

Que tal función exista es un ejercicio simple y de hecho existen algunos. Sin embargo, no se conoce tal fórmula (que pueda generar todos los números primos sin ninguna excepción) que sea fácilmente computable . Sin embargo, lo que se sabe es que hay una serie de condiciones que dicha función debe o no satisfacer. No está claro si sería posible obtener dicha fórmula (que es quizás lo que quiere decir en el subtexto). Vea esta discusión en Mathworld http://mathworld.wolfram.com/Pri… Creo que aquí se habla de la función a la que se refiere Dan.

También hay una buena entrada de wikipedia sobre el tema Fórmula para números primos: y habla sobre algunas recurrencias generadoras principales y manos en más referencias.

Sí, hay una función recursiva primitiva p ( n ) que te da el enésimo número primo. Ni siquiera tiene que usar una función recursiva general.

Hay muchos algoritmos que se pueden usar para implementar esa función, y es un ejercicio típico en el primer semestre de programación escribir uno.

Por alguna razón, es posible que desee restringir qué tipo de función considerará. La función p ( n ) no es una función polinómica, por lo que necesitará más que sumar, restar y multiplicar para implementarla. Pero recuerde, si agrega iteración, es decir, recursividad primitiva, entonces puede obtener p ( n ).

Los tamices primarios pueden considerarse como un tipo de “función generadora primaria”. Básicamente son una forma (relativamente) rápida de encontrar todos los números primos por debajo de un límite específico:

Tamiz de Eratóstenes
Tamiz de Atkin
Tamiz de Sundaram

Las funciones generadoras principales se encuentran entre las funciones más antiguas en matemáticas, ya que los tamices numéricos pueden considerarse generadores. Creo que una pregunta mucho más profunda y más interesante sería preguntar si existe una función para la validación inmediata de un número primo. Esto se usa generalmente como un ejemplo de “¿P = NP?” en informática

Hola,

Lo que sigue es largo, pero si estás interesado, probablemente te interesará.

No , no hay pruebas de que tal función generadora no pueda existir.
+
No existe una fórmula para generar números primos (y, por lo tanto, no hay funciones
eso puede generarlos a todos ).

Una función generadora de números primos es algo que no está bien definido como alguien más dijo. Asumiré que te refieres a una función que te da todos los números primos … Esto sería equivalente a encontrar una manera de saber instantáneamente si un número es primo o no, y así es como entenderé a partir de ahora una función generadora para primo números (= una función que dice instantáneamente si un número es primo o no).

Tal función que dice instantáneamente si un número es primo o no no existe, y puede existir (aunque altamente improbable). Esto es lo que quiere decir mi primera oración.

Las computadoras no pueden saber instantáneamente si muchos números son primos o no (incluso si lo hacen instantáneamente en números relativamente pequeños … otro tema aquí), y en nuestro mundo, es muy importante que sea así. Este tema requeriría otra pregunta más específica también.

Si está interesado, la razón por la cual es tan importante que no exista una función generadora de números primos se detalla brevemente en lo que sigue (suponiendo que no lo sepa, pero luego otros querrán leer …).

No sé cuál es su conocimiento en matemáticas, pero este tema de los números primos es especialmente sensible. Si se encontrara una función generadora, en cierto sentido, si bien es un gran paso para las matemáticas en general, sería catastrófico .

¿Por qué sería catastrófico? Simplemente porque hoy en día, el único sistema realmente confiable para codificar mensajes utiliza el hecho preciso de que tal función generadora no existe.

Por ejemplo, todos los datos bancarios, por ejemplo, están codificados con el llamado sistema RSA (que utiliza números primos). Concretamente, la razón por la que es relativamente seguro comprar cosas en Internet con tarjeta azul, etc., se basa en este sistema RSA. De hecho, todo lo que debería codificarse en nuestro mundo utiliza la no existencia de una función generadora de números primos a través de este sistema RSA (que es ampliamente utilizado, si no se usa exclusivamente, cuando es importante que los mensajes codificados no sean decodificados por personas equivocadas).

RSA son las iniciales de los tres tipos que inventaron el sistema.

Si desea saber cómo funciona este sistema RSA, es otro tema, pero esta es la idea principal, ya que es muy bueno.

Con las computadoras, hoy, si se te ocurre un código, existe una alta probabilidad de que sea destruido a través de la inmensa potencia de cálculo de la máquina. El sistema RSA se asegura de que una computadora no pueda ayudar (y si no puede, ¿quién lo hará?).

Con RSA, además del mensaje, envía un número, llamémoslo c, que es el producto de otros dos números primos huuuuuuge, llamaremos ay b. Entonces c = a * b. (a * b es cómo c se factoriza como producto de números primos).

Si A es la persona que quiere enviar mensajes a la persona B, sin entrar en detalles, B conoce un número especial al que llamaremos d. d es secreto , A lo eligió por B.

Solo B, conoce el número d. Si A quiere enviar mensajes a otra persona, a la persona C, le da a C otro número d ‘…

La primera parte de la belleza del sistema es que su mensaje codificado y este número c son información pública , todos tienen acceso a ellos (no teman ver su mensaje interceptado y analizado por algún extraño, todo es público).

Ahora, el segundo efecto de belleza es que el procedimiento para decodificar el mensaje también es público (no hay bromas aquí). En otras palabras, todos conocen el mensaje codificado, el número c y lo que uno tiene que hacer para decodificar el mensaje y, sin embargo, solo la persona elegida podrá decodificar el mensaje. La perfección misma …

Para decodificar, tienes dos opciones:
1) sabes el número d, y sucede instantáneamente con una computadora (realmente al instante).
2) O logras encontrar a y b de c. Pero aquí está la clave del sistema. Debido a que a y b se eligen lo más cerca posible de los límites de la máquina, la computadora no podrá factorizar c, es decir, encontrar a y b. Si la computadora logra encontrar ayb, si, entonces tomará años (las edades aquí son años …). Esto solo sucederá porque ayb no son lo suficientemente grandes.

Si alguien encuentra una función generadora de números primos, entonces las computadoras probablemente lograrán encontrar ayb de cualquier manera demasiado rápida. En primer lugar, significaría el fin del sistema RSA, pero si el hombre que lo encuentra es un delincuente, podrá descifrar todos los datos bancarios y esto será nada menos que pánico …

Existe un registro del mayor número c factorizado, y es mucho más pequeño que los números primos más grandes conocidos.

Debido a que no existe una función generadora de números primos (todavía, y con suerte), existe el concepto de “el número primo más grande conocido”.

Como habrás adivinado, tales números cuestan cientos de miles de dalares. Encontrar esos números es lo que hacen las “compañías RSA”, comprar esos números es lo que hacen los bancos.

Por lo tanto, no se conoce una función generadora de números primos hasta el momento, no hay pruebas de que no se pueda encontrar dicha función, encontrar números primos grandes es realmente difícil (lleva años, pero es mucho más rápido encontrarlos que factorizar el número ac) y esa es básicamente la clave), y es de suma importancia que si algún día alguien encuentra esa función, no es un delincuente (un investigador universitario, por ejemplo …) porque podría causar problemas reales.

Largo, pero espero que haya ayudado.

Tuya,
GW.

Alguien cometió un error en otra publicación aquí sobre la generación de funciones para números primos: reproduzco mi comentario en su publicación aquí para aquellos interesados:

Casi todos los programas tienen una función llamada (next_prime) (o algo así) que dado un número devuelve el siguiente número primo. U otra función le da el enésimo número primo …

Pero estos no están generando números primos porque funcionan solo bajo ciertos límites .

La forma en que funcionan estas funciones es que se refieren a una base de tabla en la que se enumeran los números primos conocidos (por un programa en particular).
(O, algunas fórmulas dan un cierto número de números primos, pero no todos, pero no voy a entrar en esto …).

Si le pregunta a un programa un número que está por encima del límite, no tendrá ninguna respuesta …

Si se pregunta cómo podrían venir los programas simples con tan enormes bases de tablas almacenadas … estas bases de tablas no tienen que ser utilizadas para que un teorema indique que dado un número n (un gran n …), hay aproximadamente ln (n) números primos entre 1 yn, y si planeabas poner números primos en una tabla, no podrías soñar con nada mejor …

No hay función generadora para números primos.

Quizás la prueba más convincente sería que los bancos pagan miles de miles de dólares para tener números primos cada vez mayores (porque no es fácil encontrarlos), y no lo harían si no lo hicieran también …

Espero que haya ayudado
GW

OK, DERIVAMOS

TEOREMA DE WILSON

SI [matemáticas] \ frac {(x-1)! + 1} {x} \ en \ mathbb {Z} [/ matemáticas]

ENTONCES

[matemáticas] x \ in \ mathbb {P} \ rightarrow 1 = \ left \ lfloor cos ^ 2 (\ pi \ frac {(x-1)! + 1} {x}) \ right \ rfloor [/ math]

Si desea encontrar el enésimo enésimo (creo que el teorema de Wilson es válido para x> 4: NUNCA CONSIDERE SU VÁLIDO PARA TODOS x> 1 :), entonces debemos sumar nuestras funciones ‘isprime’ de 2 a x y verificar cuándo alcanza esa suma nuestro valor ‘n’, que ocurre con las condiciones;

[matemáticas] n = \ pi (x) = \ sum_ {k = 2} ^ {x} {\ left \ lfloor cos ^ 2 (\ pi \ frac {(k-1)! + 1} {k}) \ right \ rfloor} [/ math]

tanto como;
[matemáticas] \ pi (x) – \ pi (x-1) = 1 [/ matemáticas]

que muestra cuando ‘x’ es el enésimo primer como;
[matemáticas] P_ {n} = x [/ matemáticas]

More Interesting

¿Existe un algoritmo de tiempo polinómico para decidir si dos permutaciones generan [matemáticas] S_n [/ matemáticas]?

Criptografía: ¿Por qué no estamos usando longitudes de clave mucho más largas para algoritmos criptográficos comunes?

En una pirámide numérica, ¿hay alguna forma de calcular el número total de diferentes números superiores dependiendo de cuántos números iniciales hay en la fila inferior de la pirámide?

¿Cómo puedo entender las anotaciones asintóticas?

¿Cómo encuentro el camino más corto entre dos puntos en la superficie de un objeto tridimensional?

¿Hay números irracionales que tienen una distribución no uniforme de dígitos cuando se expanden en la base n, donde n puede ser cualquier número natural, aparte de aquellos construidos artificialmente como la constante de Liouville?

¿Existe un patrón que le permita saber cuántos dígitos tendrá un producto de dos números, sin las matemáticas?

¿Cómo se factorizan [matemáticas] {\ nu ^ 3} – \ nu – 1 [/ matemáticas]?

“Dados los N enteros, siempre podemos encontrar dos enteros distintos cuya diferencia de cuadrados es un múltiplo de 1000”. ¿Cuál es el valor entero más pequeño de N que haría que la afirmación sea verdadera?

Dada una simple regresión lineal E (y) = bx1 + c + error, con solo una variable independiente, dos parámetros desconocidos y un rango de posibles observaciones para x1 = [0,100], ¿cómo podría llegar a un diseño secuencial bayesiano óptimo que minimiza la incertidumbre de mis estimaciones de parámetros en cada paso?