Aún no he añadido los ejemplos concretos para m=7 que me mencionaste (como n=72808, d=9, k=3, c=21), porque quería que los revisaras primero y me dijeras si quieres que aparezcan tal cual o si prefieres añadir más datos. También, por supuesto, cualquier otro comentario o sugerencia sobre el borrador será bienvenida.
Gracias de nuevo por tu ayuda y colaboración.
Un saludo,
Jose Omar
Hola, se podrían añadir mas datos , pero hay ciertas limitaciones , que van apareciendo. Ya puse a la máquina a correr para hallar ejemplos m=7 con d hasta 100, pero ten en cuenta que cada vez que k se incrementa en una unidad c lo debe hacer en 7 unidades y para k=4 tienes c=28
luego tienes que buscar números en las proximidades (en el rango o un poco inferior) de $$\dfrac{2^{28}}{3^4}=3314017....$$ y por cada numero hay que probar 100 distancias diferentes , son muchas operaciones y si k=5 anda en los miles de millones, por lo que los tiempos de máquina suben exponencialmente, haciendolos imposibles de manejar ya para k=6.
Es decir si no halla los ejemplos con k muy bajo, aunque d sea pequeño el abanico de posibles candidato a cumplir se hace muy grande e inalcanzable por un ordenador común avanzando de 1 en 1
Código
import math as mm
import sys
sys.set_int_max_str_digits(0)
m=7
cta=0
num=[]
c=[]
k=[]
d=[]
dd=[]
datos=1000000000
def ruta(n):
ck=0
cd=0
nn=n
while nn!=1:
if nn%2==1:
ck+=1
nn=3*nn+1
else:
cd+=1
nn=nn/2
return n ,ck, cd # Devuelve una tupla
nnn=5
while nnn<datos:
x=1
n,kn,cn =ruta(nnn)
#print(n,kn,cn)
while x< 100:
nd,knd,cnd=ruta(nnn+x)
#print(nnn,x,nm,dm,kn,knd,cn,cnd)
if kn==knd and cn==cnd and cn==m*kn:
if x not in d:
cta+=1
num.append(nnn)
c.append(cn)
d.append(x)
k.append(kn)
print(nnn,x,kn,cn,cta)
f=open("collatzgem.txt","a")
texto=str(nnn)+","+str(x)+","+str(kn)+","+str(cn)+"\n"
f.write(texto)
f.close()
x+=1
else:
x+=1
#print("con ",nnn, " no hay distancias")
nnn+=1
if nnn//100000==nnn/100000:
print(nnn)
if cta==100:
break
El código se puede refinar, tiene muchas cosas que he dejado innecesarias , o que me sirven de referencia por cual número anda buscando.