4 votos

Comparación de recuentos de enteros relativamente primos dentro de un conjunto finito

Estoy trabajando en un enfoque para Conjetura de Legendre que depende de que el siguiente resultado sea verdadero (donde $p$ es cualquier primo, $n$ es cualquier número entero donde $p \nmid n$ ):

$$c_p(p,x) \ge c_p(n,x)$$

No estoy seguro de que sea siempre cierto, pero no soy capaz de encontrar un ejemplo contrario. Empiezo con el caso en el que $p=3$ y $n=5$ .

Déjalo:

  • $f(x) = \prod\limits_{p\text{ prime & }p | x}p$
  • $p_n$ sea el $n$ el primero
  • $p\#$ sea el primitivo de $p$
  • $v(x) = \dfrac{(x+1)\#}{f(x^2+x)}$
  • gcd $(a,b)$ sea el máximo común divisor de $a$ y $b$ .
  • $c_p(n,x) = $ el recuento de enteros $0\le t$ tal que $pt+n < x$ y gcd $(x^2+x,pt+n)=1$

Esta es mi pregunta:

Dada:

  • $x \ge 7$
  • $x \equiv 1 \pmod 3$
  • $15 | v(x)$

¿Siempre es así?

$$c_3(3,x) \ge c_3(5,x)$$

He aquí algunos ejemplos:

  • $x=7$
  • $v(7) = \dfrac{8\#}{f(56)} = \dfrac{7\#}{14} = 15$
  • $c_3(3,7) = 1$ que consiste en $\{3\}$
  • $c_3(5,7) = 1$ que consiste en $\{5\}$
  • $x=13$
  • $v(13) = \dfrac{14\#}{f(182)} = \dfrac{13\#}{182} = 165$
  • $c_3(3,13) = c_3(3,7)+1$ que consiste en $\{3,9\}$
  • $c_3(5,13) = c_3(5,7)+1$ que consiste en $\{5,11\}$
  • $x=16$
  • $v(16) = \dfrac{17\#}{f(272)} = \dfrac{17\#}{34} = 15,015$
  • $c_3(3,16) = c_3(3,13)+1$ que consiste en $\{3,9,15\}$
  • $c_3(5,16) = c_5(3,13)$ que consiste en $\{5,11\}$

¿Siempre se deduce que $c_3(3,x) \ge c_3(5,x)$ ? ¿Puede alguien encontrar un contraejemplo?

2voto

Art Puntos 88

Escribí un código en Julia para buscar casos en los que la condición $c_3(3, x) \geq c_3(5, x)$ es falso (esencialmente un enfoque de fuerza bruta). Estoy publicando esto como una respuesta porque creo que algunas de las optimizaciones que hice al problema mientras escribía este código podrían ser útiles para abordar problemas similares. Aquí hay un fragmento del código que he escrito que define las funciones relevantes:

f(x::Int64)::Int64 = prod([p for p in primesieve(x) if mod(x, p) == 0])

primorial(x::Int64)::Int64 = prod(primesieve(x))

v(x::Int64)::Int64 = primorial(x + 1) / f(x^2 + x)

cₚ(p::Int64, n::Int64, x::Int64)::Int64 = 
length([t for t = 0:floor(Int64, (x - n)/p) if gcd(x^2 + x, p*t + n) == 1])

Estas funciones se definen de forma bastante sencilla, casi exactamente como se describe en la pregunta (el primesieve(x) es una implementación del método Tamiz de Eratóstenes que genera la lista de primos menores que x ). Inicialmente intenté buscar contraejemplos utilizando el siguiente código:

for x = 7:3:10000
    if v(x) % 15 == 0
        if cₚ(3, 3, x) < cₚ(3, 5, x)
            println(x)
        end
    end
end

Aunque este código implementó correctamente todas las restricciones necesarias, no se ejecutó porque el valor de v(x) estaba fuera de los límites de la Int64 para algunos de los valores más grandes de x (esto no es sorprendente, ya que el primorial crece rápidamente). Esto exigía una forma alternativa de comprobar la condición $15 \vert v(x)$ (o, de forma equivalente, $v(x) \equiv 0 \pmod{15}$ ).

El número $v(x)$ es un cociente de otros dos números: $\#(x+1)$ - el producto de todos los primos menores que $x+1$ y $f(x^2 + x) = f(x\cdot (x+1))$ - la radical (mayor factor libre de cuadrados) de $x\cdot (x+1)$ . El numerador de esta fracción es siempre divisible por $15 = 3\cdot 5$ ya que se requiere que $x \geq 7$ . Comprobación de $15 \vert v(x)$ equivale, por tanto, a preguntarse si $15$ no dividir el número $f(x\cdot (x+1))$ .

Aunque esta simplificación es suficiente para evitar el desbordamiento de enteros, se puede optimizar el código aún más: la condición $15 \nmid f(y)$ equivale a $3 \nmid f(y) \land 5 \nmid f(y)$ . Además, $p \nmid f(y)$ equivale a $p \nmid y$ para cualquier primo $p$ . Para $y = x^2 + x$ las condiciones se convierten en $3 \nmid (x\cdot (x + 1))$ y $5 \nmid (x\cdot (x + 1))$ . Desde $x$ debe ser de la forma $x \equiv 1 \pmod{3}$ la primera condición ya se cumple. Basta con comprobar sólo la segunda condición $5 \nmid (x\cdot (x + 1))$ lo cual es cierto para $x \equiv 1, 2, 3 \pmod{5}$ .

El código puede ser modificado para:

for x = 7:3:1000
    if !(x % 5 in [0, 4])
        if cₚ(3, 3, x) < cₚ(3, 5, x)
            println(x)
        end
    end 
end

Esto es mucho más eficiente desde el punto de vista computacional y no requiere ninguna función más que $c_p(n, x)$ a definir.

Editar: Algunos de los contraejemplos encontrados por este programa son $76, 208, 322, 391, 406, 412, 436, 493, \text{ and } 496$ .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X