MathGroup Archive 2011

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

Search the Archive

Re: Seaching in Pi a sequence. Looking for a faster method

  • To: mathgroup at smc.vnet.net
  • Subject: [mg119582] Re: Seaching in Pi a sequence. Looking for a faster method
  • From: DrMajorBob <btreat1 at austin.rr.com>
  • Date: Sat, 11 Jun 2011 03:58:09 -0400 (EDT)
  • References: <201106101038.GAA19889@smc.vnet.net>
  • Reply-to: drmajorbob at yahoo.com

This corrects the Dispatch table from my earlier solution (it wasn't  
general enough).

It also uses Sow, Reap, and Scan rather than Position, Part, and  
Accumulate.

It's not as fast as the other solution, but it's interesting.

Quit

piesimo3[n_, m_, r_] :=
  Module[{d = Dispatch@Thread[DeleteCases[Range[0, 9], m] -> -1],
    count = 1},
   First@Last@
     Reap@Scan[(Length@# == r && First@# == m && Sow@count;
         count += Length@#) &,
       Split[RealDigits[Pi - 3, 10, n][[1]] /. d]]
   ]
Timing@piesimo3[10^7, 9, 7]

{38.6643, {1722776, 3389380, 4313727, 5466169}}

Bobby

On Fri, 10 Jun 2011 05:38:05 -0500, Guillermo Sanchez  
<guillermo.sanchez at hotmail.com> wrote:

> Dear Group
>
> I have developed this function
>
> piesimo[n_, m_, r_] := Module[{a}, a = Split[RealDigits[Pi - 3, 10, n]
> [[1]]]; Part[Accumulate[Length /@ a], Flatten[Position[a, Table[m,
> {r}]]] - 1] + 1]
>
> n is the digits of Pi, after 3, where to search a sequence of m digit
> r times consecutives.
> For instance:
>
> piesimo[10^7, 9, 7]
>
> Gives that the sequence 9999999 happens in positions:
>
> {1722776, 3389380, 4313727, 5466169}
>
> I know that in this group I will find  faster methods. Any idea?
>
> Guillermo
>
>


-- 
DrMajorBob at yahoo.com


  • Prev by Date: Re: How to make the same two expressions
  • Next by Date: Re: Seaching in Pi a sequence. Looking for a faster method
  • Previous by thread: Re: Seaching in Pi a sequence. Looking for a faster method
  • Next by thread: Re: Seaching in Pi a sequence. Looking for a faster method