25 votos

Alguien ha encontrado un "patrón" en números primos?

Ayer yo estaba teniendo un poco de diversión tratando de buscar algunos patrones en los números primos; y yo creo que he encontrado algo interesante (al menos para mí). Todavía no he encontrado la lista de los patrones ya ha encontrado, a pesar de que me han pedido. No voy a pedir aquí porque pedir que tipo de pregunta "no contribuye" al foro. Así que si me había algunas pautas para que coincida con la mía en contra de que yo no podría pedir.

Pero a continuación está el código para producir el patrón que he encontrado. Yo sólo quería saber si la gente sabía acerca de esto o no todavía.

La idea es comenzar con una matriz de números primos {p1, p2, p3, ... }, de impresión, a continuación, establezca el valor en el índice i = abs( [i] - [i-1] ) o poner más formalmente, establezca el valor en i igual a la de los "prime brecha". Yo, a continuación, repita este, pero el uso de la primer lagunas y encontrar sus debilidades. Y así sucesivamente.

Sample output imagen. Se puede ver en la parte superior de la fila de empezar con los números primos, a continuación, sus lagunas, sus lagunas, y así sucesivamente. Se comienza a producir ese patrón de triángulo better seen here

Si ejecuta el código se puede ver el patrón, su realidad es muy sexy.

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.util.Arrays;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class PrimeSandbox 
{

public static void main(String[] args) 
{
    JTextArea screen = new JTextArea(5, 20);
    Font font = new Font("Times New Roman", Font.BOLD, 8);
    screen.setFont(font);
    screen.setForeground(Color.BLUE);
    JScrollPane scrollPane = new JScrollPane(screen); 
     JFrame frame = new JFrame();
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setLayout(new BorderLayout());
     frame.add(BorderLayout.CENTER, scrollPane);
     //frame.pack();
     frame.setLocation(0, 0);
     frame.setSize(1000, 1000);
     frame.setVisible(true);
     frame.setAlwaysOnTop(true);

    int arrsize = 150;
    int[] parrOrig = {  2,      3,      5,      7,     11,     13,     17,     19,     23,     29, 
             31,     37,     41,     43,     47,     53,     59,     61,     67,     71, 
             73,     79,     83,     89,     97,    101,    103,    107,    109,    113, 
            127,    131,    137,    139,    149,    151,    157,    163,    167,    173, 
            179,    181,    191,    193,    197,    199,    211,    223,    227,    229, 
            233,    239,    241,    251,    257,    263,    269,    271,    277,    281, 
            283,    293,    307,    311,    313,    317,    331,    337,    347,    349, 
            353,    359,    367,    373,    379,    383,    389,    397,    401,    409, 
            419,    421,    431,    433,    439,    443,    449,    457,    461,    463, 
            467,    479,    487,    491,    499,    503,    509,    521,    523,    541, 
            547,    557,    563,    569,    571,    577,    587,    593,    599,    601, 
            607,    613,    617,    619,    631,    641,    643,    647,    653,    659, 
            661,    673,    677,    683,    691,    701,    709,    719,    727,    733, 
            739,    743,    751,    757,    761,    769,    773,    787,    797,    809, 
            811,    821,    823,    827,    829,    839,    853,    857,    859,    863, 
            877,    881,    883,    887,    907,    911,    919,    929,    937,    941, 
            947,    953,    967,    971,    977,    983,    991,    997,   1009,   1013 };
    int [] parr = Arrays.copyOf(parrOrig, arrsize);
    int lines = 0;
    while(lines < 1000)
    {
        int[] oldarr = Arrays.copyOf(parr,arrsize);

        for(int i = 0; i < arrsize; i++)
            screen.append(" " + oldarr[i]);
        screen.append("\n");
        screen.setCaretPosition(screen.getText().length());

        for(int i = 0; i < arrsize; i++)
        {
            if(i == 0)
                parr[i] = 0;
            else
                parr[i] = Math.abs(oldarr[i] - oldarr[i-1]);
        }
        lines++;
        try {
            Thread.sleep(20);
        } catch(InterruptedException ex) {
            Thread.currentThread().interrupt();
        }
    }

}
}

15voto

rck Puntos 121

Tenga en cuenta que podemos escribir su esquema de iteración como, por $i \geq 0$ $$\begin{align} x(0,i) & = \text{secuencia de números enteros no negativos}\\ x(n+1,i) & = \begin{casos} 0 & i = 0 \\ \left|x(n, i) - x(n,i-1)\right| & i > 0\end{casos}\end{align}$$

La primera consecuencia de esta definición es que

Propiedad 1 el valor de $x(n,i)$ es determinada por los valores de $x(0,0), x(0,1), \ldots, x(0,i)$.

Vamos a definir $M(n,i) = \max_{0 \leq j \leq i} x(n,j)$.

Lema 2 Para cualquier distribución inicial de los números enteros no negativos, $M(n,i)$ es no decreciente en $i$ y nonincreasing en $n$.

Prueba: nondecrease en $i$ es claro a partir de la definición de los $M$. Nonincrease en $n$ de la siguiente manera a partir de la relación recursiva y el hecho de que todos los números involucrados son no positivos, por lo que $|x(n,i) - x(n,i-1)| \leq \max( x(n,i), x(n,i-1)) \leq M(n,i)$. q.e.d.

Lema 3 Para cualquier distribución inicial de los números enteros no negativos, si existe una $i_0 \geq 0$ y $n_0 \geq 0$ tales que $M(n_0,i_0) = 0$, entonces los primeros $i_0 + 1$ de números en los datos, son todos el mismo.

Prueba: Por la recursividad de la regla se ve fácilmente que si $n_0 > 1$, entonces $M(n_0, i_0) = 0 \ffi M(n_0 - 1, i_0) = 0$. (Partimos de $x(n_0 - 1, 0) = 0$ y resolver aumentando en $i$.) Si $M(1,i_0) = 0$, entonces necesariamente los primeros $i_0 + 1$ de números en los datos, son todos iguales. q.e.d.

Corolario 4 Si por alguna $i_0,n_0 > 0$ tenemos que $M(n_0,i_0) \neq 0$, entonces para cualquier $n \geq n_0$ también tenemos $M(n, i_0) \neq 0$.

El corolario se puede utilizar para mostrar

Proposición 5 Deje de $n_0 > 0$ y $i_0 > 0$ ser fijo. Supongamos que $M(n_0, i_0) \neq 0$. Entonces $x(n,i_0+1)$ finalmente, como $$ n aumenta, la decadencia más de $M(n_0,i_0)$.

Prueba (boceto): se argumenta por la contradicción. Supongamos siempre $x(n,i_0+1) = M(n,i_0+1) > M(n_0,i_0) > 0$. Desde $M(n,i_0+1)$ es nonincreasing en $n$, tenemos que $x(n,i_0+1)$ converge a unos $x_0 > M(n_0, i_0)$ en tiempo finito. Supongamos que $x(n,i_0+1) = x_0$ para todo $N \leq n \leq N + 2i_0$ garantizados por la convergencia. Esto requiere que $x(n,i_0) = 0$ para todo $N \leq n \leq N + 2i_0 - 1$, y la iteración por inducción, vamos a ver que esto implica para todo $N \leq n \leq N + i_0 - 2$ y todos $0 \leq i \leq i_0$ que $x(n,i) = 0$, mostrando así $M(n,i_0) = 0$, lo que da una contradicción. q.e.d.

Corolario 6 para cualquier datos iniciales tales que $|x(0,0) - x(0,1)| = 1$ (La lista de números primos, por ejemplo), tenemos que para todo $i_0 > 0$ podemos encontrar $n_0 > 0$ tal que para todo $n > n_0$, $M(n,i_0) = 1$.

Prueba: sabemos que $M(1,1) = 1$. La proposición anterior implica que para suficientemente grande $n$, $x(n,2) \leq 1$, por lo tanto $M(n,2) = 1$. Por inducción, esto es cierto para todos $i_0$.


Observe que la Propiedad 1 implica que una vez que tenemos un segmento inicial que se ve como una línea desde el Sierpinski gasket, la región rectangular a continuación será exactamente el Sierpinski gasket tipo de evolución.

Ahora, también tenga en cuenta que su sistema está teniendo diferencias con el elemento "a la izquierda". Si usted toma diferencias con el elemento "a la derecha" que terminan en la situación en Gilbreath de la Conjetura. El párrafo anterior en el hecho de muestra:

Gilbreath la Conjetura es equivalente a la afirmación de que "el Sierpinski gasket patrón por debajo de la diagonal que se observan continúa indefinidamente."

2voto

Hagen von Eitzen Puntos 171160

Dado cualquier secuencia que comienza con $2$ y, a continuación, que contiene sólo números producirá Sierpinski-como patrones emergentes y en crecimiento de la izquierda.

Si el triángulo cumple un $0$ o $2$ en su extremo derecho, sigue creciendo. En caso contrario, comienza de nuevo, mientras que la disminución del número en el extremo derecho en que se reunirá la próxima vez, hasta que se ha deteriorado lo suficiente para permitir que el triángulo para crecer más a la derecha.

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