Re: anyone help with this... (lonely numbers)
- To: mathgroup@smc.vnet.net
- Subject: [mg11344] Re: anyone help with this... (lonely numbers)
- From: Clemens Frey <Clemens.Frey@uni-bayreuth.de>
- Date: Fri, 6 Mar 1998 00:41:03 -0500
- Organization: uni-bayreuth.de
- References: <6dg81s$2t4@smc.vnet.net>
Hi Liam, this is an answer to your question about "friends". You can copy the following directly into your Mathematica session. (* ------------------------------------------------------------------- *) (* First of all, we define a friend-function which defines what being a friend means for an integer (0..9) in a list: *) Remove[friend]; (friend[#,#]=True)& /@ Range[0,9]; (friend[#,Mod[#+1,10]]=True)& /@ Range[0,9]; (friend[#,Mod[#-1,10]]=True)& /@ Range[0,9]; friend[_,_]:=False; friend[{x_,y_,z_}] := friend[x,y]||friend[y,z]; (* Use ??friend to see what we have defined by this... (0 being a friend of 1 and 9, 9 being a friend of 0 and 8) This helps us preventing any If-structure. *) (* Now we define friendlist as a function for each member of li which returns if it is friend or lonely (True or False resp.). *) Remove[friendlist]; friendlist[li_] := Module[ {dummy}, Transpose@{ li, friend/@ Transpose@{ Flatten@{dummy,Drop[li,-1]}, li, Flatten@{Drop[li,1],dummy } } } ]; (* The last definition can count the occurences of integer x as a friend in li: *) friendsof[x_Integer,li_] := Count[li,{x,True}]; (* After setting up the list that shall be counted (we use 2000 elements) by: *) li = First@RealDigits[ N[3 E + Pi,2000]]; (* we can make up our statistics: *) Timing[ resli = friendlist[li]; friendsof[#,resli]& /@ Range[0,9] ] (* which gives: {0.66 Second, {92, 100, 98, 94, 100, 99, 95, 106, 104, 97}} on a Pentium 150 (OS/2 Warp running the Win311-Mathematica2.2.1). Plot this by *) ListPlot@ Transpose@ { Range[0,9], friendsof[#,resli]& /@ Range[0,9] }; (* If you want to count the lonely numbers in the list, just write False instead of True in the definition of the friendsof function, or define an equivalent function lonelies! *) (* ------------------------------------------------------------------- *) hope that helped Clemens Liam McAllister wrote: > > Hi, > > can anyone help me with these posers, > > Any help would be greatly appreciated. > > Thanks, > > L. > > ---------------------------------------------------------------------------- > Use the function RealDigits[ ] to produce a list of the first 200 > digits in the decimal expansion of 3e + Pi. We say a number in this > list has a Friend if there is a number either immediatly before or > immediatly after it which differ's from it by at most one, else we say > it is Lonely. Produce a table to show the number of occurences of each > digit from 0 to 9 amongst the lonely numbers. > Display this information graphically. How many lonely numbers are there > in this list altogether? > > ----------------------------------------------------------------------------