MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Terras inverse

  • To: mathgroup at smc.vnet.net
  • Subject: [mg43769] Re: [mg43471] Terras inverse
  • From: Omega Consulting <info at omegaconsultinggroup.com>
  • Date: Fri, 3 Oct 2003 02:28:54 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

At 07:00 AM 9/17/2003, Gino Prosapio wrote:
>I'm looking for a fast algorithm of inverse Terras/Collatz function (i.e.
>f(m)={(2m-1)/3 (if integer), 2m}). This program should return the list:
>
>{1},{2},{4},{8},{5,16},{3,10,32},{6,20,21,24},{12,13,40,42,128}... etc.
>
>That correspond to the tree
>
>
>                    1
>                    |
>                    2
>                    |
>                    4
>                    |
>                    8
>                   / \
>                  /   \
>                 /     \
>                5       16
>               / \       \
>              3  10      32
>               \  \     /  \
>                6  20  21  64
>  ...          .................  .
>
>
>Thank you.

Looks like a problem for Nest.

f[{m_, old_}] := Module[{new},
     new = Flatten[{Cases[(2 m - 1)/3, _Integer], 2 m}];
     {Complement[new, old], Union[new, old]}
     ]

First /@ NestList[f, {{1}, {1}}, 7]

{{1}, {2}, {4}, {8}, {5, 16}, {3, 10, 32}, {6, 20, 21, 64}, {12, 13, 40, 42,
     128}}


--------------------------------------------------------------
Omega Consulting
"The final answer to your Mathematica needs"
http://omegaconsultinggroup.com


  • Prev by Date: Re: Plotting functions with undefined values
  • Next by Date: Re: Non-string output in for loop
  • Previous by thread: Re: Signal Processing Help please..
  • Next by thread: Re: Diff. Equ