|
|
A290977
|
|
First n-digit number to appear twice in a row in the decimal expansion of Pi.
|
|
2
|
|
|
|
OFFSET
|
1,1
|
|
COMMENTS
|
209209 and 305305 appear in Pi before any 2-digit number appears twice in a row.
a(n) (n >= 1) begins at the following decimal places: 24, 413, 326, 8239, 107472, 1632152, 9719518. - Robert G. Wilson v, Aug 23 2017
|
|
LINKS
|
|
|
EXAMPLE
|
a(1) = 3 because 3 is the first 1-digit number to appear twice in a row in the decimal expansion of Pi = 3.14159265358979323846264(33)...
|
|
MATHEMATICA
|
With[{s = Rest@ First@ RealDigits[N[Pi, 10^4]]}, Keys@ Merge[#, Identity] &@ Table[If[Length@ # > 0, TakeSmallest[#, 1], 0 -> 0] &@ Sort[Map[#[[1, 1]] &, DeleteCases[#, {}]]] &@ Map[SequenceCases[#, {a_, b_} /; b == a + n] &, KeyMap[FromDigits, PositionIndex@ Partition[s, n, 1]]], {n, 4}]] (* Michael De Vlieger, Aug 16 2017 *)
pi = StringDrop[ ToString[ N[Pi, 1632200]], 2]; f[n_] := Block[{k = 1}, While[ StringTake[pi, {k, k +n -1}] != StringTake[pi, {k +n, k +2n -1}], k++]; k]; Array[f, 6] (* Robert G. Wilson v, Aug 17 2017 *)
|
|
PROG
|
(PARI) eva(n) = subst(Pol(n), x, 10)
pistring(n) = default(realprecision, n+10); my(x=Pi); floor(x*10^n)
pidigit(n) = pistring(n)-10*pistring(n-1)
consecpidigits(pos, len) = my(v=vector(len)); for(k=1, len, v[k]=pidigit(pos+k)); v
a(n) = my(v=[], w=[], x=1); while(1, v=consecpidigits(x, n); w=consecpidigits(x+n, n); if(v==w, return(eva(v))); x++) \\ Felix Fröhlich, Aug 16 2017
(Python)
from sympy import S
# download https://stuff.mit.edu/afs/sipb/contrib/pi/pi-billion.txt, then
# with open('pi-billion.txt', 'r') as f: pi_digits = f.readline()
pi_digits = str(S.Pi.n(3*10**5+2))[:-2] # alternative to above
pi_digits = pi_digits.replace(".", "")
def a(n):
for k in range(1, len(pi_digits)-n):
s = pi_digits[k:k+2*n]
if s[0] != 0 and s[:len(s)//2] == s[len(s)//2:]:
return int(s[:len(s)//2])
|
|
CROSSREFS
|
|
|
KEYWORD
|
base,more,nonn
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|