Re: Seaching in Pi a sequence. Looking for a faster method
- To: mathgroup at smc.vnet.net
- Subject: [mg119600] Re: Seaching in Pi a sequence. Looking for a faster method
- From: Phil J Taylor <xptaylor at gmail.com>
- Date: Sun, 12 Jun 2011 05:06:08 -0400 (EDT)
- References: <201106101038.GAA19889@smc.vnet.net>
That works great, thanks! I'm new with Mathematica ... still a lot to learn! piStringSearch[n_, s_, c_] := Replace[StringPosition[ToString@N[Pi, n], ToString@s, c], {start_, end_} :> start - 2, 1] The leading zero problem appears when you use numbers without the quotes like this: piStringSearch[ 10^3, 09999, 100] {762, 763, 764} It's not correct that way ... the leading zero is dropped by ToString which is ok. Just use quotes like you did. piStringSearch[ 10^3, "09999", 100] {} On Sat, Jun 11, 2011 at 2:57 PM, DrMajorBob <btreat1 at austin.rr.com> wrote: > searching for 9999998 didn't return correct results until I added the >> _Integer qualifier to the start and end rules. >> > > That's because exactly two matches were found: > > piStringSearch[n_, s_, c_] := > StringPosition[ToString@N[Pi, n], ToString@s, c] > > piStringSearch[10^7, "9999998", 100] > % /. {start_, end_} :> start - 2 > > {{764, 770}, {3062883, 3062889}} > > {762, 768} > > Do this instead: > > piStringSearch[n_, s_, c_] := -2 + > StringPosition[ToString@N[Pi, n], ToString@s, c][[All, 1]] > > piStringSearch[10^7, "9999998", 100] > > {762, 3062881} > > That still fails if NO matches are found, so this is safer than either > method above: > > Clear[piStringSearch] > piStringSearch[n_, s_, c_] := > Replace[StringPosition[ToString@N[Pi, n], ToString@s, > c], {start_, end_} :> start - 2, 1] > > piStringSearch[10^7, "9999998", 100] > > {762, 3062881} > > > piStringSearch[10^7, "9999999", 100] > > {1722776, 3389380, 4313727, 5466169} > > Table[piStringSearch[10^7, "000000" <> ToString@i, 100], {i, 0, 9}] > > {{3794572}, {3794573}, {2609392, > 7257528}, {}, {}, {1699927}, {}, {}, {2328783}, {}} > > piStringSearch[10^7, "000000", 100] > > {1699927, 2328783, 2609392, 3794572, 3794573, 7257528} > > What is the "leading zeros problem"? > > Bobby > > > On Sat, 11 Jun 2011 02:59:35 -0500, Phil J Taylor <xptaylor at gmail.com> > wrote: > > I made a couple of minor modifications after noticing problems with >> Feynman's Point and patterns that begin with zeros. I'm not sure why, but >> searching for 9999998 didn't return correct results until I added the >> _Integer qualifier to the start and end rules. I haven't fixed the leading >> zeros problem. Just put the pattern in quotes. >> >> (* loosely validated at http://www.angio.net/pi/bigpi.cgi *) >> >> piStringSearch[n_, s_, c_] := >> Module[{piString = ToString[N[Pi, n]]}, >> StringPosition[piString, ToString[s], >> c] /. {start_Integer, end_Integer} :> start - 2] >> >> piStringSearch[10^5, "00000", 100] >> >> {17534} >> >> On Fri, Jun 10, 2011 at 2:45 PM, Phil J Taylor <xptaylor at gmail.com> >> wrote: >> >> This works well for me ... it's about 3x faster than piesimo on my >>> machine >>> and I can search for any sequence. >>> The final argument c is the number of matches that you are interested in >>> seeing. >>> >>> piStringSearch[n_, s_, c_] := >>> Module[{a}, a = ToString[N[Pi, n]]; >>> StringPosition[a, ToString[s], c] /. {start_, end_} :> start - 2] >>> >>> piStringSearch[10^7, 9999999, 100] >>> >>> {1722776, 3389380, 4313727, 5466169} >>> >>> On Fri, Jun 10, 2011 at 6:38 AM, 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 >
- References:
- Seaching in Pi a sequence. Looking for a faster method
- From: Guillermo Sanchez <guillermo.sanchez@hotmail.com>
- Seaching in Pi a sequence. Looking for a faster method