[Scilab-users] Visualising Collatz sequences

Stéphane Mottelet stephane.mottelet at utc.fr
Wed Apr 13 17:42:39 CEST 2022


Hi,

Maybe some hints there:

https://community.wolfram.com/groups/-/m/t/558256

hth

S.

Le 13/04/2022 à 17:36, Lester Anderson a écrit :
> Hello all,
>
> I have prepared a code to generate Collatz sequences based on the even 
> (n/2) and odd ((3n+1)/2) rules.
>
> clear
>
> function [ns, seq] = collatz(n)
> // Reference: https://en.wikipedia.org/wiki/Collatz_conjecture
> //ns =number of steps; seq=Collatz sequence
> seq(1) = n;
> // Position an index on the next element of the sequence
> i = 2;
>
> // Repeat the iteration until you find a 1
> while seq(i-1) ~= 1
>     // Use modulo to define even/odd numbers
>     if modulo(seq(i-1), 2) == 0
>         // Step taken if even
>         seq(i) = seq(i-1)/2;
>     else
>         // Step taken if odd
>         // seq(i) = 3*seq(i-1) + 1 // "3n+1 Collatz"
>         seq(i) = (3*seq(i-1) + 1)/2; // "shortcut form Collatz"
>     end
>     // Increment index
>     i = i+1;
> end
> // Find the length of the sequence
> ns = length(seq);
> endfunction
>
> n = input('Enter a positive integer: ')
> tic()
>
> for  i = 1:n
>    [nsi, seqi] = collatz(i);
>    ns(i) = nsi;
>    seq(1:nsi, i) = seqi;
> end
>
> // Find maxima in each Collatz sequence
> peak_values = max(seq, 'r')
>
> t=toc()
> mprintf('Elapsed time: %4.8f\n',t)
>
> What I would like to try is apply a further rule to generate a plot
> based on the Collatz sequences using left/right angular turn depending on
> whether the number is odd or even, going in reverse (starting at 1) 
> and branching out.
>
> I can easily define the odd/even numbers in the sequence (modulo), but 
> not sure how to
> apply the angle rotation for the graphic plot. Any pointers would be 
> helpful.
>
> Attached an example image by way of reference.
>
> On a secondary point, the Collatz conjecture can be applied to 
> negative values, but would be interested to know how the code has to 
> be tweaked. If you stick a negative value in the code as is, it gets 
> stuck in a loop.
>
> Thanks
> Lester
>
>
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/users

-- 
Stéphane Mottelet
Ingénieur de recherche
EA 4297 Transformations Intégrées de la Matière Renouvelable
Département Génie des Procédés Industriels
Sorbonne Universités - Université de Technologie de Compiègne
CS 60319, 60203 Compiègne cedex
Tel : +33(0)344234688
http://www.utc.fr/~mottelet




More information about the users mailing list