Yo hice la siguiente prueba:
Para cada primo, tomar el primer distancia de separación de $dp$ a la anterior primer y el próximo primer $dn$, a continuación, calcular el $a=(pp\ mod\ dp)$$b=(np\ mod\ dn)$. Si $a$ o $b$ $\in \Bbb P$ o igual a$1$, entonces el resultado es exitoso, si no el resultado es un error.
Yo lo he probado con Python en el intervalo de $[1,10^8]$ y los resultados son muy interesantes, el porcentaje de error es muy bajo, cercano al 1%:
Total errors: 62157 of 5761453 total primes.
Successful primes: 5758741 in the interval [1,100000000]
%Error vs Total primes: 1.0788424378364276%
Family mod 3 errors: 59445
Uncategorized errors: 2712
Deje $E$ el conjunto de los números primos que son los resultados de error de la prueba. Me gustaría que aislar, al menos parcialmente, por lo que estoy tratando de encontrar un no similitud básica entre ellos.
Por ejemplo, este es el conjunto de error $E$ para el intervalo $[1,57829]$, $1409$ es el primer presidente que no tiene éxito:
$E=\{1409,2039,3109,10799,13669,16519,20369,27631,31859,42359,42989,44221,46549,47609,54959,55259, 55579, 55589, 57829\}$
Cuando el intervalo es extendida, otros primos como $68863$ o $71647$ aparecerá, por lo que no todos de ellos va a terminar con $9$ o $1$.
He intentado comprobar en OEIS, y algunos conceptos básicos de la modularidad de los comentarios, pero sin suerte, no puedo ver ninguna relación especial entre ellos, aparte de ser de los números primos y los que pertenecen a $1+6k$ o $5+6k$ (como de costumbre, porque son números primos) y que la mayoría de ellos acaban con $9$ (esto podría ser algo importante, pero no puedo ver la razón detrás). Tal vez no existe en absoluto, pero tal vez hay algo que no puedo ver.
En cuanto al valor de las congruencias, he podido comprobar que, al menos en la prueba de intervalo, es en la mayoría de los casos un múltiplo de $3$ (yo les llamo "familia mod 3" errores), pero supongo que a medida que el intervalo se hace más grande otros múltiplos ("uncategorized" errores) de un primer número aparecerá más a menudo.
La razón para esta prueba es solo que quería saber si el primer lagunas están siguiendo algún tipo de patrón, al menos para algunos casos. La idea surgió de una manera muy diferente de la prueba que hice hace unos días (enlace aquí) para una muy diferente tema.
A partir de esos resultados, pensé que si existe simetría, tal vez yo podría tratar de encontrar patrones similares entre los números primos, así que comencé a hacer la misma prueba que yo escribí en la presente pregunta.
Al principio yo estaba usando la distancia mínima $d$ que se aplica a la prime $p$ $p-d$ $p+d$ números primos. Por casualidad me di cuenta de que en la mayoría de los casos $(p\mod\ d)$ fue también el primer o $1$, por lo que traté de hacer más pruebas. Finalmente, después de algunas pruebas, hice la versión de la prueba que escribí en esta pregunta.
Si alguien está interesado en probar o modificar la prueba, aquí está el código de Python:
def distance_primality():
from sympy import nextprime, prevprime
from gmpy2 import is_prime
n=5
errorcount = 0
family_mod_3_errorcount = 0
totalpr = 0
print("RESULT"+"\t"+"P"+"\t"+"PP"+"\t"+"D1"+"\t"+"Mod"+"\t"+"pr/1?"+"\t"+"NP"+"\t"+"D2"+"\t"+"Mod"+"\t"+"pr/1?")
print("-----"+"\t"+"-"+"\t"+"--"+"\t"+"--"+"\t"+"---"+"\t"+"-----"+"\t"+"--"+"\t"+"--"+"\t"+"---"+"\t"+"-----")
test_limit = 100000000
while n < test_limit:
totalpr = totalpr + 1
pp = prevprime(n)
while not is_prime(pp):
pp = prevprime(pp-1)
np = nextprime(n+1)
while not is_prime(np):
np = nextprime(np+1)
d1 = n-pp
d2 = np-n
if ((pp%d1==1) or is_prime(pp%d1) and ((np%d2==1) or is_prime(np%d2))):
print("Success"+"\t"+str(n)+"\t"+str(pp)+"\t"+str(d1)+"\t"+str(pp%d1)+"\t"+"Yes"+"\t"+str(np)+"\t"+str(d2)+"\t"+str(np%d2)+"\t"+"Yes")
elif (pp%d1==1) or is_prime(pp%d1):
print("Success"+"\t"+str(n)+"\t"+str(pp)+"\t"+str(d1)+"\t"+str(pp%d1)+"\t"+"Yes"+"\t"+str(np)+"\t"+str(d2)+"\t"+str(np%d2)+"\t"+"No")
elif (np%d2==1) or is_prime(np%d2):
print("Success"+"\t"+str(n)+"\t"+str(pp)+"\t"+str(d1)+"\t"+str(pp%d1)+"\t"+"No"+"\t"+str(np)+"\t"+str(d2)+"\t"+str(np%d2)+"\t"+"Yes")
else:
if (pp%d1)%3==0 or (np%d2)%3==0:
print("ErrF3"+"\t"+str(n)+"\t"+str(pp)+"\t"+str(d1)+"\t"+str(pp%d1)+"\t"+"No"+"\t"+str(np)+"\t"+str(d2)+"\t"+str(np%d2)+"\t"+"No")
family_mod_3_errorcount = family_mod_3_errorcount + 1
else:
print("Error"+"\t"+str(n)+"\t"+str(pp)+"\t"+str(d1)+"\t"+str(pp%d1)+"\t"+"No"+"\t"+str(np)+"\t"+str(d2)+"\t"+str(np%d2)+"\t"+"No")
errorcount = errorcount + 1
n=nextprime(n)
while not is_prime(n):
n=nextprime(n)
print()
print("Total errors: " + str(errorcount+family_mod_3_errorcount) + " of " + str(totalpr) + " total primes" + ". Successful primes: " + str(totalpr-errorcount) + " in the interval [1," + str(test_limit ) + "]")
print("%Error vs Total primes: "+str(((errorcount+family_mod_3_errorcount)/totalpr)*100)+"%")
print("Family mod 3 errors: " + str(family_mod_3_errorcount))
print("Uncategorized errors: " + str(errorcount))
distance_primality()
Me gustaría compartir las siguientes preguntas:
El porcentaje de error es muy escasa, lo he probado a través de $10^8$, pero podría ser sólo una consecuencia de la Fuerte Ley de los Pequeños Números?
Es allí una manera de aislar al menos un subconjunto de los números primos en $E$?
Teniendo en cuenta estos resultados, hay alguna sugerencia sobre otro tipo de prueba que podía hacer para saber más sobre el comportamiento observado?
Gracias!