Auf meinem Rechner dauert das 5 Minuten.
Kann man das schneller programmieren?
Code: Alles auswählen
num = 0
for i in range(0, 1000*1000)
num = num*10 + random.randint(0,9)
Code: Alles auswählen
num = 0
for i in range(0, 1000*1000)
num = num*10 + random.randint(0,9)
Code: Alles auswählen
num = random.randint(0, 10**1000000)
Das geht bei mir erheblich schnellererdal1934 hat geschrieben:Danke, Lösung von sirius braucht nur noch 2 Minuten auf meinem Rechner.
Code: Alles auswählen
In [7]: %%timeit
...: lower = 10**1000000
...: upper = lower * 10 - 1
...: num = random.randint(lower, upper)
...:
100 loops, best of 3: 2.17 ms per loop
Compiler time: 0.24 sCode: Alles auswählen
In [3]: import random
In [4]: %%timeit
...: num = 0
...: for i in range(0, 1000*1000):
...: num = num*10 + random.randint(0,9)
...:
1 loop, best of 3: 58min 53s per loop
In [5]: %%timeit
...: lower = 10**1000000
...: upper = lower * 10 - 1
...: num = random.randint(lower, upper)
...:
10 loops, best of 3: 45.1 ms per loop
Compiler time: 6.37 sCode: Alles auswählen
max = 1000000
num = int(''.join(str(random.randint(0,9)) for _ in range(0,max)))
Na gut, wenn wir jetzt schon bei albernen Lösungen sind:gast8973 hat geschrieben:Meine Lösung.
Code: Alles auswählen
int('{}{}'.format(random.choice('123456789'), ''.join(random.choice('0123456789') for _ in range(999999))))Code: Alles auswählen
num = 0
while len(str(num)) < 10000000:
num += random.randint(0, 10**1000000)
Code: Alles auswählen
str1 = '{}{}'.format(random.choice('123456789'), ''.join(random.choice('0123456789') for _ in range(999999)))
num1 = int(str1)Code: Alles auswählen
lower = 10**1000000
upper = lower * 10 - 1
num2 = random.randint(lower, upper)
str2 = str(num2)