Re: Goodstein expansion
- To: mathgroup at smc.vnet.net
- Subject: [mg132323] Re: Goodstein expansion
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Sun, 9 Feb 2014 04:48:26 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
- References: <20140208090230.178B569E8@smc.vnet.net>
Clear[baseForm, goodsteinForm] baseForm[n_Integer?NonNegative, b_Integer: 2] := Module[{id = IntegerDigits[n, b]}, id.(HoldForm[b^#] & /@ Range[Length[id] - 1, 0, -1])] /; 2 <= b <= 36 goodsteinForm[n_Integer?NonNegative, b_Integer: 2] := Module[{id = IntegerDigits[n, b]}, id.(HoldForm[b^#] & /@ (baseForm[#, b] & /@ Range[Length[id] - 1, 0, -1]))] /; 2 <= b <= 36 n = 87; b = 2; baseForm[n, b] HoldForm[2^0] + HoldForm[2^1] + HoldForm[2^2] + HoldForm[ 2^4] + HoldForm[2^6] n == % // ReleaseHold True goodsteinForm[n, b] HoldForm[2^0] + HoldForm[ 2^HoldForm[2^0]] + HoldForm[2^HoldForm[2^1]] + HoldForm[2^HoldForm[2^2]] + HoldForm[2^(HoldForm[2^1] + HoldForm[2^2])] Because HoldForm is nested in goodsteinForm, ReleaseHold must be called twice. (I consider this an "unexpected" behavior of ReleaseHold.) n == % // ReleaseHold // ReleaseHold True b = 5; baseForm[n, b] 2*HoldForm[5^0] + 2*HoldForm[5^1] + 3*HoldForm[5^2] n == % // ReleaseHold True goodsteinForm[n, b] 2*HoldForm[5^0] + 2*HoldForm[5^HoldForm[5^0]] + 3*HoldForm[ 5^(2*HoldForm[5^0])] n == % // ReleaseHold // ReleaseHold True Bob Hanlon On Sat, Feb 8, 2014 at 4:02 AM, Brambilla Roberto Luigi (RSE) < Roberto.Brambilla at rse-web.it> wrote: > > The Goodstein expansion of integers (see for instance Stillwell," Roads > to Infinity", pag.47) > > Given an integer n we can write it as sum of powers of 2 > > 87=2^6+2^4+2^2+1=2^(2^2+2)+2^(2^2)+2^2+2^0 > > More generally assuming an integer b as a base, we can write n as a sum > of power of b with coefficients <b > es.: b=5 > > 87=3*5^2+2*5^1+2*5^0. > > I can do it by means of a long and obvious routine with lots of If[] > and While[]. > May be someone can do it by means of the recursive properties of > Mathematica language? > Many thanks to all the friends of this group! > Roberto > > > > > > RSE SpA ha adottato il Modello Organizzativo ai sensi del D.Lgs.231/2001, > in= > forza del quale l'assunzione di obbligazioni da parte della Societ=E0 > avvie= > ne con firma di un procuratore, munito di idonei poteri. > RSE adopts a Compliance Programme under the Italian Law (D.Lgs.231/2001). > Ac= > cording to this RSE Compliance Programme, any commitment of RSE is taken > by= > the signature of one Representative granted by a proper Power of > Attorney.= > Le informazioni contenute in questo messaggio di posta elettronica sono > ris= > ervate e confidenziali e ne e' vietata la diffusione in qualsiasi modo o > for= > ma. Qualora Lei non fosse la persona destinataria del presente messaggio, > La= > invitiamo a non diffonderlo e ad eliminarlo, dandone gentilmente > comunicazi= > one al mittente. The information included in this e-mail and any > attachments= > are confidential and may also be privileged. If you are not the correct > rec= > ipient, you are kindly requested to notify the sender immediately, to > cancel= > it and not to disclose the contents to any other person. > > >
- References:
- Goodstein expansion
- From: "Brambilla Roberto Luigi (RSE)" <Roberto.Brambilla@rse-web.it>
- Goodstein expansion