TL;DR: Il "casse" sur les listes avec plus de 2080 éléments, mais ne vous inquiétez pas trop :)
Réponse complète:
Tout d'abord, vous remarquerez que le "brassage", une liste peut être compris (conceptuellement) que la génération de toutes les permutations possibles des éléments de la liste, et choisir l'une de ces permutations aléatoires.
Ensuite, vous devez vous rappeler que tous les auto-contenue informatisé des générateurs de nombres aléatoires sont en fait des "pseudo-aléatoire". C'est qu'ils ne sont pas réellement aléatoire, mais reposent sur une série de facteurs d'essayer et de générer un nombre qui est difficile à deviner à l'avance, ou à dessein de le reproduire. Parmi ces facteurs est généralement le précédent numéro généré. Donc, dans la pratique, si vous utilisez un générateur de hasard en permanence un certain nombre de fois, vous allez commencer à obtenir la même séquence de tous les plus de nouveau (c'est la "période" que la documentation se réfère).
Enfin, la docstring sur Lib/random.py (le module random) indique que "La période [de l'générateur de nombre aléatoire] est - 2**19937-1
."
Donc, compte tenu de tout cela, si votre liste est telle qu'il y a 2**19937
ou plus des permutations, certains de ces ne sera jamais obtenue en mélangeant la liste. Vous avais (encore une fois, sur le plan conceptuel) générer toutes les permutations de la liste, puis générer un nombre aléatoire x, et de choisir le xème permutation. La prochaine fois, vous générez un autre nombre aléatoire y, et de choisir le yth permutation. Et ainsi de suite. Mais, car il y a plus de combinaisons que vous allez obtenir des nombres au hasard (parce que, au plus, après l' 2**19937-1
nombre généré, vous allez commencer à obtenir les mêmes que ceux de nouveau), vous allez commencer à ramasser les mêmes permutations de nouveau.
Donc, vous voyez, ce n'est pas exactement une question de combien de temps votre liste est (mais qui le fait entrer dans l'équation). Aussi, 2**19937-1
est tout à fait un long numéro. Mais, là encore, en fonction de votre brassage besoins, vous devez garder tout cela à l'esprit. Sur un cas simpliste (et avec un rapide calcul), pour une liste sans éléments répétés, 2081 éléments de rendement 2081!
permutations, ce qui est plus que 2**19937
.