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.
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
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();
}
}
}
}