On 2021-08-15 15:54, Samuel Gougeon wrote:
Le 15/08/2021 à 11:28, Lester Anderson a écrit :
Hello Samuel,
The size of ns (number of steps) and seq (sequence of values) are
variable depending on the integer input, and this seems to be one issue.
For this reason, seq must be a list, leading to
function [ns, seq] = collatz(p)
seq = p
while %T
if pmodulo(p, 2)
p = p*3+1
else
p = p/2
end
seq = [seq p]
if p==1
ns = length(seq)
break
end
end
endfunction
prime = primes(20); [ns, seq] = ([],list()); for i = 1:length(prime)
[ns(i), seq(i)] = collatz(prime(i));
end --> ns' ans = 2. 8. 6. 17. 15. 10. 13. 21. --> seq seq = (1) = [2,1]
(2) = [3,10,5,16,8,4,2,1] (3) = [5,16,8,4,2,1] (4) =
[7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1] (5) =
[11,34,17,52,26,13,40,20,10,5,16,8,4,2,1] (6) =
[13,40,20,10,5,16,8,4,2,1] (7) = [17,52,26,13,40,20,10,5,16,8,4,2,1] (8)
= [19,58,29,88,44,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1]
Samuel
Of course, Samuel, I didn't realize that the length of seq was not
monotonically increasing (which I had if I had looked at the displayed
matrix ...)!
Stefan
_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users