Code: Select all
import datetime
from tqdm import tqdm
def findpi(end):
notin = []
stop = 0
s1 = datetime.datetime.now()
with open(r"C:\Users\shamm\Desktop\Text Documents\1 BILLION Digits of pi.txt", 'rt') as p:
pi = str(p.read())
for i in tqdm(range(1,end+1)):
if str(i) not in pi:
if notin == []:
stop = i
notin.append(i)
s2 = datetime.datetime.now()
tdelta = s2 - s1
ts = tdelta.total_seconds()
return [notin, stop, ts]
pi = findpi(1000000)
print("Not in:", pi[0])
print("Last:", pi[1])
print("Time taken:", pi[2])
Gibt es einen Engpass, der verhindert, dass zu viel Speicher oder Rechenleistung verbraucht wird? Oder stimmt etwas in meinem Code nicht?
Bearbeiten: Die Ursache scheint also in der ständig zunehmenden Länge der Zahl zu liegen, die durchsucht werden muss. Wie kann ich diese Suche optimieren, damit sie nicht mit jeder Erhöhung der Ziffernzahl langsamer wird?