Tại sao các số ngẫu nhiên không thực sự là con trăn ngẫu nhiên?
Bài viết này trình bày cách sử dụng hàm 2 để khởi tạo trình tạo số giả ngẫu nhiên trong Python để lấy dữ liệu ngẫu nhiên xác định mà bạn muốn Show
Bằng cách đặt giá trị hạt giống tùy chỉnh, chúng tôi có thể tạo lại dữ liệu do trình tạo số giả ngẫu nhiên cung cấp. Chọn các phần tử giống nhau từ danh sách một cách ngẫu nhiên mỗi lần sử dụng 2Cũng thấy
Mục lục
Một hạt giống trong một trình tạo ngẫu nhiên là gì?Giá trị hạt giống là giá trị cơ bản được sử dụng bởi trình tạo giả ngẫu nhiên để tạo số ngẫu nhiên. Số ngẫu nhiên hoặc dữ liệu được tạo bởi mô-đun ngẫu nhiên của Python không thực sự ngẫu nhiên; . e. , xác định. Sử dụng hàm 2 với các hàm mô-đun ngẫu nhiên khác để tái tạo lặp đi lặp lại đầu ra của chúngTại sao và khi nào nên sử dụng hàm seed()Giá trị hạt giống rất quan trọng trong bảo mật máy tính để tạo giả ngẫu nhiên khóa mã hóa bí mật an toàn. Vì vậy, bằng cách sử dụng giá trị hạt giống tùy chỉnh, bạn có thể khởi tạo trình tạo số giả ngẫu nhiên mạnh mẽ và đáng tin cậy theo cách bạn muốn Ngoài ra, 2 rất hữu ích để tái tạo dữ liệu được cung cấp bởi trình tạo số giả ngẫu nhiên. Bằng cách sử dụng lại giá trị gốc, chúng tôi có thể tạo lại cùng một dữ liệu nhiều lần khi nhiều luồng không chạyKhi chúng tôi cung cấp một hạt giống cụ thể cho trình tạo ngẫu nhiên, bạn sẽ nhận được các số giống nhau mỗi khi thực hiện chương trình. Điều đó rất hữu ích khi bạn cần một nguồn số ngẫu nhiên có thể dự đoán được Cách sử dụng ngẫu nhiên. hạt giống () chức năngHãy hiểu hoạt động của hàm 6Cú pháp của import random print('Random number with seed 30') for i in range(3): # Random number with seed 30 random.seed(30) print(random.randint(25, 50))2
Nó khởi tạo trình tạo số giả ngẫu nhiên với giá trị hạt giống 8Thông số. – Nó chấp nhận hai tham số. Cả hai đều là tùy chọn
Khi chúng tôi nói nguồn ngẫu nhiên dành riêng cho hệ điều hành, điều đó có nghĩa là. –
Điểm quan trọng
hạt ngẫu nhiên () để tạo cùng một số ngẫu nhiên mỗi lầnNếu bạn muốn tạo cùng một số mỗi lần, bạn cần chuyển cùng một giá trị gốc trước khi gọi bất kỳ hàm mô-đun ngẫu nhiên nào khác. Hãy xem cách đặt hạt giống trong trình tạo số giả ngẫu nhiên Python
đầu ra Random number with seed 30 42 42 42 Như chúng ta có thể thấy trong kết quả, chúng ta đã nhận được cùng một số ba lần vì chúng ta đã gieo chúng với cùng một giá trị trước khi gọi một số 91Giả sử bạn gọi ngẫu nhiên. randint() hai lần trước khi gọi một số 6, bạn sẽ nhận được một số khác. Nếu Nếu bạn muốn dữ liệu khác, hãy chuyển giá trị gốc khác trước khi gọi bất kỳ hàm mô-đun ngẫu nhiên nào khácThí dụ 9đầu ra 5Chúng tôi có một số khác ở vị trí thứ hai trong đầu ra vì chúng tôi đã thực hiện randint() hai lần mà không đặt giá trị hạt giống Ghi chú. Bạn cũng có thể sử dụng các hàm getstate() và setstate(), giúp chúng tôi nắm bắt trạng thái bên trong hiện tại của trình tạo ngẫu nhiên. 93. Tiếp theo, bất cứ khi nào bạn muốn kết quả tương tự, hãy thay đổi trạng thái hiện tại của số ngẫu nhiên bằng cách sử dụng 94Bằng cách thay đổi trạng thái hiện tại thành trạng thái trước đó, chúng tôi có thể nhận lại cùng một dữ liệu ngẫu nhiên Đặt thời gian hệ thống làm giá trị gốc thay vì nguồn ngẫu nhiên dành riêng cho hệ điều hànhVì bất kỳ lý do gì, nếu bạn muốn đặt một nguồn gốc tùy chỉnh khác với nguồn ngẫu nhiên dành riêng cho hệ điều hành, một phương pháp phổ biến là sử dụng thời gian hệ thống tính bằng mili giây làm giá trị gốc 8Nhận giá trị hạt giống được sử dụng bởi trình tạo ngẫu nhiênĐôi khi, rất hữu ích khi có thể tái tạo dữ liệu được cung cấp bởi trình tạo số giả ngẫu nhiên. Như bạn đã biết, việc tạo dữ liệu ngẫu nhiên phụ thuộc vào giá trị gốc. Bằng cách sử dụng lại giá trị gốc, chúng tôi có thể tạo lại cùng một dữ liệu nhiều lần khi nhiều luồng không chạy Ví dụ: Bạn muốn tái tạo kết quả bạn nhận được trong một lần chạy cụ thể. Trong những trường hợp như vậy, bạn muốn biết hạt giống được sử dụng để tái tạo kết quả đó. Giá trị hạt giống hiện tại là điều cần thiết khi bạn muốn kết quả có thể lặp lại Sử dụng giá trị hạt giống tùy chỉnh, bạn phải nhớ rằng Trình tạo ngẫu nhiên của Python không lưu trữ hạt giống trong bộ nhớ. tôi. e. , Nó không cung cấp bất kỳ phương pháp nào để lấy giá trị hạt giống hiện tại. Tùy thuộc vào bạn để lưu hạt giống nếu bạn muốn sử dụng lại nó. Không thể lấy lại hạt giống tự động từ máy phát điện. Nhưng bạn có thể thử thay thế này 9Cách trên dựa trên thời gian nên mỗi lần bạn thực hiện nó sẽ cho ra một seed khác nhau và nếu bạn thích kết quả đó, bạn có thể sử dụng seed đó để nhận lại kết quả tương tự Bây giờ, tôi sẽ sử dụng cùng một hạt giống (7616533358804326209) để nhận lại kết quả tương tự 0Ghi chú. Sử dụng phương pháp trên, bạn có thể tạo lại kết quả của bất kỳ chức năng mô-đun ngẫu nhiên nào Hạt giống ngẫu nhiên Python với randrangeHãy xem cách sử dụng hàm 6 để lấy cùng một số ngẫu nhiên trong một phạm vi nhất định 2Sử dụng phương pháp hạt giống và lựa chọn ngẫu nhiên cùng nhauHàm lựa chọn ngẫu nhiên() được sử dụng để chọn một phần tử ngẫu nhiên từ danh sách và đặt. Bằng cách đặt giá trị hạt giống tùy chỉnh, bạn có thể chọn cùng một lựa chọn mỗi lần 3Sử dụng hạt ngẫu nhiên và hàm mẫu cùng nhauSử dụng hàm sample() ngẫu nhiên, chúng ta có thể chọn các mẫu ngẫu nhiên từ danh sách và các loại chuỗi khác. Hãy xem cách lấy các mẫu ngẫu nhiên giống nhau ra khỏi danh sách mỗi lần sử dụng hàm 6 và 97 0Sử dụng chức năng hạt ngẫu nhiên và xáo trộn cùng nhauChúng tôi cũng có thể sử dụng 6 và ngẫu nhiên. shuffle() các chức năng cùng nhau. Mục đích chính của việc sử dụng hàm 6 và 50 cùng nhau là tạo ra cùng một kết quả mỗi lần sau mỗi lần xáo trộn. Nếu chúng ta đặt cùng một giá trị hạt giống mỗi lần trước khi gọi hàm 50, chúng ta sẽ nhận được cùng một chuỗi mục. Tôi. e. , việc xáo trộn sẽ tạo ra cùng một kết quả mỗi lầnThí dụ. – 1Bước tiếp theoHãy cho tôi biết ý kiến và phản hồi của bạn trong phần bên dưới Ngoài ra, hãy thử giải bài tập miễn phí và câu đố sau đây để hiểu rõ hơn về cách làm việc với dữ liệu ngẫu nhiên trong Python Tại sao số ngẫu nhiên không thực sự ngẫu nhiên?Tạo số giả ngẫu nhiên. Các số ngẫu nhiên do phần mềm tạo chỉ là giả ngẫu nhiên. Chúng không thực sự ngẫu nhiên vì máy tính sử dụng thuật toán dựa trên phân phối và không an toàn vì chúng dựa trên các thuật toán xác định, có thể dự đoán được .
Mô-đun ngẫu nhiên Python có thực sự ngẫu nhiên không?Mô-đun Python Random là một mô-đun dựng sẵn của Python được sử dụng để tạo các số ngẫu nhiên. Đây là các số giả ngẫu nhiên có nghĩa là chúng không thực sự ngẫu nhiên . Mô-đun này có thể được sử dụng để thực hiện các hành động ngẫu nhiên như tạo số ngẫu nhiên, in giá trị ngẫu nhiên cho danh sách hoặc chuỗi, v.v.
Là ngẫu nhiên () thực sự ngẫu nhiên?Ngẫu nhiên là ngẫu nhiên, phải không? . Vì máy tính không có trí tưởng tượng, nên về mặt vật lý, chúng không thể đưa ra một con số thực sự ngẫu nhiên. Nếu bạn sử dụng các hàm tích hợp để ngẫu nhiên hóa một số, nó sẽ tạo ra một số giả ngẫu nhiên bằng thuật toán phức tạp. Not really. Since computers have no imagination whatsoever, it is physically impossible for them to come up with a truly random number. If you use built-in functions to randomize a number, it will produce a pseudo-random number using a complex algorithm.
Python Randint có thực sự ngẫu nhiên không?Chúng tôi gọi randint là trình tạo số giả ngẫu nhiên (PRNG) vì nó tạo ra các số có vẻ ngẫu nhiên nhưng không thực sự ngẫu nhiên . |