thể trùng lặp:
Python's random: What happens if I don't use seed(someValue)?Seed() và số ngẫu nhiên bằng Python
Hôm nay, tôi chỉ nói về seed()
chức năng từ một lập trình viên nhiều kinh nghiệm hơn tôi. Tôi thường chỉ gọi choice()
với một danh sách như một đối số, vì tôi không cần thêm chức năng số ngẫu nhiên nữa.
Người bạn lập trình của tôi nói với tôi rằng việc gọi hạt giống là cần thiết vì nếu không Python luôn bắt đầu các phép toán số ngẫu nhiên bằng 0 làm hạt mặc định. Điều này có nghĩa rằng mặc dù các con số xuất hiện ngẫu nhiên, chúng tôi thực sự nhận được cùng một trình tự mỗi lần.
Điều này khiến tôi khá kỳ quặc. Ví dụ, hàm choice()
có thực sự không gọi hạt giống trước khi nó hoạt động không? Hoặc là lý do nó không thể thay đổi hạt giống của nó bằng cách lập trình bởi vì nó sẽ liên quan đến việc chọn một số ngẫu nhiên, và rõ ràng rằng nó là một vấn đề nếu mục tiêu cuối cùng của chúng ta cũng là chọn một số ngẫu nhiên!
Tôi đang ranting một chút ở đây, nhưng tôi tự hỏi nếu có ai có ý tưởng rõ ràng về cách tất cả điều này được thực hiện.
Đây là tất cả những điều bạn có thể tìm hiểu trong tài liệu (http://docs.python.org/library/random.html) hoặc bằng cách tự mình thử nghiệm trong trình thông dịch. Thử chạy Python và thực hiện 'random.choice (range (1000))' hai lần. Bạn có nhận được câu trả lời giống nhau không? –
@MichaelHoffman bạn đã bỏ lỡ điểm. Tất nhiên bạn sẽ không nhận được câu trả lời tương tự bằng cách thực hiện nó hai lần trong cùng một quy trình Python. Bài kiểm tra chính xác là để mở hai quy trình và thử nó trong mỗi quy trình. –
Tôi đã viết rằng kém. Tôi có nghĩa là toàn bộ hoạt động (chạy Python và thực hiện chức năng) nên được thực hiện hai lần. –