2010-07-01 29 views
6

Sau đây là từ trang web python, khoảngpython random.shuffle của

random.shuffle(x[, random])

Xáo chuỗi x tại chỗ. Đối số ngẫu nhiên tùy chọn là hàm 0-đối số trả về một phao ngẫu nhiên trong [0.0, 1.0); theo mặc định, đây là hàm random().

Lưu ý rằng đối với thậm chí còn nhỏ len(x), tổng số hoán vị của x lớn hơn thời gian của hầu hết các trình tạo số ngẫu nhiên; điều này ngụ ý rằng hầu hết các hoán vị của một chuỗi dài không bao giờ có thể được tạo ra.

Nếu tôi muốn lặp lại việc hoán vị ngẫu nhiên ['a'..'k'], có vẻ như ngẫu nhiên sẽ KHÔNG cho tôi sự ngẫu nhiên. Sự hiểu biết của tôi có đúng không?

Cảm ơn bạn!

+2

bản sao có thể có của [Độ dài tối đa của danh sách để trộn ngẫu nhiên với Python random.shuffle?] (Http://stackoverflow.com/questions/3062741/maximal-length-of-list-to-shuffle-with-python-random -shuffle) –

+0

cảm ơn bạn Chris và SilentGhost vì lời giải thích nhanh chóng và chi tiết! –

Trả lời

6

Đối với chuỗi có độ dài 11, có 11! hoặc 39.916.800 (~ 2 25.3) hoán vị có thể. Đối với Mersienne Twister (thuật toán ngẫu nhiên của Python), khoảng thời gian là 2 - 1. Nói cách khác, bạn sẽ ổn.