Números de UlamUn Número de Ulam es un miembro de una secuencia entera, la cual fue concebida por el matemático polaco Stanislaw Ulam y publicada en SIAM Review en 1964. La secuencia estándar de Ulam comienza con U1=1 y U2=2, siendo los primeros dos números de Ulam. Entonces, para n > 2, Un queda definido como el entero más pequeño que es la suma de dos miembros anteriores diferentes entre sí en exactamente una forma. Ulam conjeturaba que esta secuencia tiene densidad 0. Sin embargo, cálculos hasta 4*107 (Jud McCranie) indican que la densidad alcanza cerca de 0.074. EjemplosSegún la definición, 3=1+2 es un número de Ulam; y 4=1+3 es un número de Ulam (La suma 4=2+2 no cuenta porque los términos previos deben ser distintos). El entero 5 no es un número de Ulam porque 5=1+4=2+3. Los primeros términos de la secuencia son: 1, 2, 3, 4, 6, 8, 11, 13, 16, 18, 26, 28, 36, 38, 47, 48, 53, 57, 62, 69, 72, 77, 82, 87, 97, 99. Los primeros números de Ulam que son números primos son:2, 3, 11, 13, 47, 53, 97, 131, 197, 241, 409, 431, 607, 673, 739, 751, 983, 986, 991, 1103, 1433, 1489. GeneralizaciónLa idea puede ser generaliza seleccionando diferentes valores de inicio y exigiendo que los términos sean una suma de valores previos en una cantidad dada de formas. Código de ejemploAquí hay un código de ejemplo (no-optimizado) Python que genera todos los números de Ulam menores que 1000. ulam_i = [1,2,3]
ulam_j = [1,2,3]
for cand in range(4,1000):
res = []
for i in ulam_i:
for j in ulam_j:
if i == j or j > i: pass
else:
res.append(i+j)
if res.count(cand) == 1:
ulam_i.append(cand)
ulam_j.append(cand)
print ulam_i
Referencias
Enlaces externos
|
Portal di Ensiklopedia Dunia