est Python capable de générer un million de nombres aléatoires avec code et s'il peut, environ combien de temps faudrait-il? P> P>
4 Réponses :
Bien sûr que vous pouvez. Testez-le avec la bibliothèque de temps.
import time import random from random import randint start = time.time() for i in range(1000000): a = random.randint(1, 50) end = time.time() print('It took ' + str(end-start) +' seconds to generate 1000000 numbers')
à partir de l'importation aléatoire Randint code> n'est pas nécessaire (vous pouvez l'utiliser, mais vous n'en utilisez pas dans votre code).
Merci de remarque, vous avez raison, édité.
Votre code imprimera maintenant toujours le même numéro, car vous ne le générerez qu'une fois, puis imprimez-le un million de fois.
import random for i in range(1000000): a = random.randint(1, 50) print(a)
Notez que votre code génère un seul entier aléatoire, puis l'imprime un million de fois. P>
Vous devez appeler Cela dit, selon les détails de la version de Python que vous utilisez et votre matériel, il suffit de générer un million d'entiers aléatoires ne devraient pas prendre plus de quelques secondes. Dans le code que vous avez montré, il faudrait beaucoup plus longtemps à impression em> eux. P> randint () code> intérieur em> la boucle si vous souhaitez générer un million de nombres aléatoires. P>
Il faut 0,92 secondes sur mon ordinateur portable.
from timeit import timeit timeit(lambda:[ random.randint(1,50) for _ in range(1000000) ], number=1)
Vous générez un numéro unique là-bas. De plus, même lors de la génération de nombreux nombres, le goulot d'étranglement de votre code serait l'appel à
Imprimer code>, car io est assez coûteux.
Vous pouvez également rechercher
randint code> de
package aléatoire numpy code>; Il fournit un troisième paramètre pour définir la forme de la sortie, donc: un million ici.
a = np.random.randint (1, 50, 1000000) code>