Module random cung cấp các hàm sinh số ngẫu nhiên. Bài này giới thiệu từ cơ bản đến tạo list.
1. Số thực ngẫu nhiên [0, 1): random.random()
import random print(random.random()) # 0.2112200...
2. Số nguyên ngẫu nhiên trong khoảng: random.randint(a, b)
Bao gồm cả a và b.
print(random.randint(0, 22)) # 2
3. Tạo list ngẫu nhiên với for loop
random_list = []
for i in range(5):
n = random.randint(1, 30)
random_list.append(n)
print(random_list) # [10, 5, 21, 1, 17]
4. random.sample() - Lấy mẫu không trùng lặp (Khuyến nghị)
# 5 số ngẫu nhiên KHÔNG TRÙNG từ 10-29 random_list = random.sample(range(10, 30), 5) print(random_list) # [16, 19, 13, 18, 15]
5. random.choices() - Lấy mẫu CÓ TRÙNG LẶP (Python 3.6+)
# 5 số ngẫu nhiên CÓ THỂ TRÙNG từ 1-10 random_list = random.choices(range(1, 11), k=5) print(random_list) # [3, 7, 3, 1, 9]
6. random.shuffle() - Xáo trộn list in-place
lst = list(range(10)) random.shuffle(lst) print(lst) # [7, 2, 9, 0, 4, 1, 6, 3, 8, 5]
7. random.seed() - Tái lập kết quả (Reproducibility)
random.seed(42) print(random.random()) # Luôn 0.6394267984578837 random.seed(42) print(random.random()) # Cùng giá trị
Tóm tắt chọn hàm nào?
| Nhu cầu | Hàm | Trùng lặp? |
|---|---|---|
| 1 số float [0,1) | random() | - |
| 1 số int [a,b] | randint(a,b) | - |
| List k phần tử KHÔNG trùng | sample(population, k) | Không |
| List k phần tử CÓ thể trùng | choices(population, k=k) | Có |
| Xáo trộn list có sẵn | shuffle(list) | In-place |