random --- tạo số ngẫu nhiên¶
Module này triển khai một bộ tạo số ngẫu nhiên giả (PRNG). PRNG là LCG kiểu Yasmarang 32-bit; khi nhập lần đầu, nó lấy một hạt giống 32-bit từ cùng nguồn phần cứng mà os.urandom() sử dụng, và mỗi số tiếp theo là một hàm xác định của hạt giống đó.
Cảnh báo
Đầu ra không an toàn về mặt mật mã -- thuật toán có thể dự đoán được từ một chuỗi đầu ra ngắn, và hạt giống ban đầu chỉ mang 32 bit entropy. Để tạo khóa, token phiên, muối mật khẩu, hoặc bất kỳ mục đích sử dụng nhạy cảm về bảo mật nào khác, hãy gọi os.urandom() thay thế.
Ghi chú
Ký hiệu sau được sử dụng cho các khoảng:
() là dấu ngoặc khoảng mở và không bao gồm các điểm đầu cuối. Ví dụ, (0, 1) có nghĩa là lớn hơn 0 và nhỏ hơn 1. Trong ký hiệu tập hợp: (0, 1) = {x | 0 < x < 1}.
[] là dấu ngoặc khoảng đóng bao gồm tất cả các điểm giới hạn. Ví dụ, [0, 1] có nghĩa là lớn hơn hoặc bằng 0 và nhỏ hơn hoặc bằng 1. Trong ký hiệu tập hợp: [0, 1] = {x | 0 <= x <= 1}.
Các hàm cho số nguyên¶
- random.randrange(start: int, stop: int | None = None, step: int = 1) int¶
Dạng đầu tiên trả về một số nguyên ngẫu nhiên từ khoảng [0, stop). Dạng thứ hai trả về một số nguyên ngẫu nhiên từ khoảng [start, stop). Dạng thứ ba trả về một số nguyên ngẫu nhiên từ khoảng [start, stop) theo bước step. Ví dụ, gọi
randrange(1, 10, 2)sẽ trả về các số lẻ từ 1 đến 9 bao gồm.
Các hàm cho số thực dấu phẩy động¶
Các hàm khác¶
- random.seed(n: int | None = None, /) None¶
Khởi tạo module bộ tạo số ngẫu nhiên với hạt giống n, phải là một số nguyên. Khi không có đối số nào (hoặc
None) được truyền vào, PRNG được gieo lại hạt giống từ cùng nguồn đặc trưng của cổng màos.urandom()sử dụng.
- random.choice(sequence: Any) Any¶
Chọn và trả về một mục ngẫu nhiên từ sequence (tuple, danh sách hoặc bất kỳ đối tượng nào hỗ trợ thao tác chỉ số con).