Обычно кажется, что у него есть шаблон: одна или две цифры 1 слишком занижены, затем следующая цифра - 10 вместо 0, прежде чем продолжать правильно, пока не повторится снова.
В этой таблице показано несколько случаев, когда это происходит:
мой
фактический
индекс
4
5
32
10
0
33
7
8
85
10
0
86
6
7
167
10
0
168
Код: Выделить всё
def denom(n): return 2*n+1
def nume(n): return n
count = 10000
array = [2]*count
carry = [0]*count
carried = [0]*count
remainder = [0]*count
quotient = [0]*count
pi = ""
idx = 0
while True:
array = list(map(lambda x:10*x, array))
for i in range(count):
i = count-1-i
carried[i] = array[i] + carry[i]
if i == 0:
remainder[i] = carried[i] % 10
break
else:
remainder[i] = carried[i] % denom(i)
quotient[i] = carried[i] // denom(i)
carry[i-1] = quotient[i] * nume(i)
if not int(pi[idx]) == carried[i] // 10:
# if True:
print(carried[i] // 10, end=" ")
print(pi[idx], end=" ")
print(idx+1)
if idx == 610:
break
array = remainder
carry = [0]*count
carried = [0]*count
remainder = [0]*count
quotient = [0]*count
idx += 1
>
Подробнее: https://stackoverflow.com/questions/780 ... ong-values
Мобильная версия