Me ha interesado esta conjetura y me he atrevido a hacer una prueba.
\( z(i) = \frac{1}{a(i)} \sum_{k=1}^{L_i} \text{sec}_i(k), \)
donde:
\( ( a(i) ) \) es el número original.
\( ( L_i ) \) es la longitud de la secuencia de Collatz para el número \( ( a(i) ) \),
\( ( \text{sec}_i(k) ) \) es el (k)-ésimo valor de la secuencia del número \( ( a(i) ) \).
\( z(i) \) es el promedio de todos los valores en la secuencia de Collatz correspondiente al número \( ( a(i) ) \).
Uso Matlab:
Spoiler
n=(1:100000)';
a=(n);
% Definir el rango de números a procesar
nums = a(1:100000);
% Preparar una celda para almacenar las secuencias de cada número
secuencias = cell(length(nums), 1);
% Procesar cada número del rango
for i = 1:length(nums)
n = nums(i);
secuencia = n;
while n ~= 1
if mod(n, 2) == 0
n = n / 2;
else
n = 3 * n + 1;
end
secuencia(end+1) = n;
end
% Guardar la secuencia en la celda correspondiente
secuencias{i} = secuencia;
end
% Supongamos que ya tienes la celda 'secuencias' con todas las secuencias
maxLong = max(cellfun(@length, secuencias)); % Longitud máxima
% Crear una matriz llena de NaN con filas iguales a la número de secuencias
matSecuencias = NaN(length(secuencias), maxLong);
% Rellenar cada fila con la secuencia correspondiente
for i = 1:length(secuencias)
lenSec = length(secuencias{i});
matSecuencias(i, 1:lenSec) = secuencias{i};
end
matSecuencias(isnan(matSecuencias))=0;
z= cumsum((((sum((matSecuencias)')))'))./a;
Representando z me da esto para los primeros 100000 números naturales:

¿Qué os parece este enfoque?