Hướng dẫn random python - trăn ngẫu nhiên

Module random trong Python chứa các hàm tạo số nguyên ngẫu nhiên, tạo ra số float giữa 0,0 và 1,0. chứa các hàm tạo số nguyên ngẫu nhiên, tạo ra số float giữa 0,0 và 1,0.

Có nhiều loại hàm khác nhau được sử dụng trong một Module random như sau:

Hàm random.random[]

Hàm này tạo ra một số float ngẫu nhiên trong khoảng từ 0,0 đến 1,0.

Hàm random.randint[]

Hàm này trả về một số nguyên ngẫu nhiên giữa các số nguyên được chỉ định.

Hàm random.randrange[]

Hàm này trả về một phần tử được chọn ngẫu nhiên từ phạm vi được tạo bởi các đối số start, stop, và step. Giá trị bắt đầu là 0 theo mặc định.

Hàm random.choice[]

Hàm này trả về một phần tử được chọn ngẫu nhiên từ một chuỗi không trống.

Hàm random.shuffle[]

Hàm này sắp xếp lại ngẫu nhiên các thành phần trong danh sách.

Hàm random[] trong Python trả về một số thực ngẫu nhiên r trong dãy 0 random[] trong Python trả về một số thực ngẫu nhiên r trong dãy 0 >> import random >>> random.random[] 0.8474337369372327

Hàm seed[]

Nếu chúng ta không đặt một seed cho bộ tạo số giả ngẫu nhiên, thì seed mặc định là thời gian hệ thống hiện tại. Tuy nhiên, chúng ta có thể đặt giá trị chính xác của seed một cách thủ công, việc này sẽ rất hữu ích nếu chúng ta muốn sao chép kết quả giả ngẫu nhiên trong tương lai. Với mục đích như vậy, chúng ta có thể sử dụng phương thức

random[] :  0.005090615688038702
random[] :  0.9941983026288641
3

>>> random.seed[5]
>>> random.random[]
0.6229016948897019
>>> random.random[]
0.7417869892607294
>>> random.random[]
0.7951935655656966
>>> random.seed[5]
>>> random.random[]
0.6229016948897019

Phương thức

random[] :  0.005090615688038702
random[] :  0.9941983026288641
3 sẽ ảnh hưởng đến tất cả các phương thức của module random mà chúng ta sử dụng sau khi gọi nó. Trong đoạn code ví dụ ở trên, ta đặt seed là
random[] :  0.005090615688038702
random[] :  0.9941983026288641
6 và sau đó gọi hàm
random[] :  0.005090615688038702
random[] :  0.9941983026288641
7 nhiều lần. Điều quan trọng cần lưu ý ở đây là seed do người dùng định nghĩa sẽ chỉ được sử dụng lần đầu tiên khi có một phương thức random khác được thực thi - sau đó, các seed cho các phương thức sau sẽ thay đổi bằng cách sử dụng các giá trị ngẫu nhiên được tạo ra trước đó.

Điều này cho phép Python đưa ra được giá trị ngẫu nhiên mới mỗi lần. Tuy nhiên, sau khi thiết lập lại seed bằng phương thức

random[] :  0.005090615688038702
random[] :  0.9941983026288641
3, chúng ta sẽ có thể sao chép chính xác chuỗi số giả ngẫu nhiên bất cứ lúc nào. Điều này rất hữu ích cho những việc như chạy thử nghiệm. Nếu bạn đưa ra cùng một seed mỗi khi bạn chạy một thử nghiệm có sử dụng một trong các phương pháp random thì bạn vẫn có thể biết đầu ra sẽ là gì cho các thử nghiệm này.

Một vài ví dụ cụ thể của module Random

Hàm randint[]

>>> random.randint[1,10]
4

Phương thức

>>> import random
>>> random.random[]
0.8474337369372327
1 lấy hai đối số thể hiện phạm vi mà phương thức rút ra một số nguyên ngẫu nhiên. Ở ví dụ trên là số nguyên được chọn ngẫu nhiên từ 1 đến 9.

Hàm randrange[]

>>> random.randrange[2,10,2]
2
>>> random.randrange[2,10,2]
4
>>> random.randrange[2,10,2]
8
>>> random.randrange[2,10,2]
6

Trong đoạn code trên, phương thức

>>> import random
>>> random.random[]
0.8474337369372327
2 tương tự như
>>> import random
>>> random.random[]
0.8474337369372327
1 nhưng nó cũng cho phép chúng ta xác định đối số thứ ba, là bước nhảy trong phạm vi được xác định. Ở ví dụ này, ta chỉ yêu cầu đưa ra các số chẵn trong phạm vi từ 2 đến 9.

Hàm choice[]

>>> cards = ['ace_spades','10_hearts','3_diamonds','king_hearts']
>>> random.choice[cards]
'10_hearts'

Trong đoạn code này, phương thức

>>> import random
>>> random.random[]
0.8474337369372327
4 chọn một phần tử ngẫu nhiên thuộc danh sách.

Hàm shuffle[]

>>> cards = ['ace_spades','10_hearts','3_diamonds','king_hearts']
>>> random.shuffle[cards]
>>> print[cards]
['king_hearts', '3_diamonds', 'ace_spades', '10_hearts']

Trong đoạn code trên, phương thức

>>> import random
>>> random.random[]
0.8474337369372327
5 xáo trộn một danh sách các phần tử. Điều quan trọng cần lưu ý ở đây là nó xáo trộn chính ở trong danh sách đó. Có nghĩa là phương thức này trả về
>>> import random
>>> random.random[]
0.8474337369372327
6 và thực sự sửa đổi biến
>>> import random
>>> random.random[]
0.8474337369372327
7 của chúng ta.

Kết luận

Vậy là thực chất

random[] :  0.005090615688038702
random[] :  0.9941983026288641
1 trong Python không phải là ngẫu nhiên, đó đều là kết quả do máy tính [hay chính xác hơn là con người với các thuật toán] tạo ra mà thôi!

Nguồn tham khảo

Tài liệu chính thức trên trang chủ Python

Chủ Đề