Mô phỏng Sự kiện Rời rạc bằng Python
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
Ngẫu nhiên hóa là gì?
Lưu ý: Máy tính, do thiết kế, không tạo được số thật sự ngẫu nhiên.
Sinh ngẫu nhiên “thật sự”
Sinh giả ngẫu nhiên
Ví dụ: Nhà máy với tác vụ lắp ráp thủ công

Có thể dùng nhiều gói thống kê:
Gói Random
Trọng tâm của chúng ta
Số nguyên ngẫu nhiên trong một khoảng
Phương thức:
random.randint(start, end)
Ví dụ: Số nguyên ngẫu nhiên từ 3 (bao gồm) đến 9 (không gồm)
random.randint(3, 9)
5
Số thực ngẫu nhiên trong một khoảng
Phương thức:
random.uniform(start, end)
Ví dụ: Số thực ngẫu nhiên từ 3 đến 9
random.uniform(3, 9)
6.4557754
Lấy mẫu ngẫu nhiên từ một dãy
Phương thức:
random.sample(mylist, k=number_samples)
Ví dụ: 2 phần tử ngẫu nhiên từ một list
mylist = ["apple", "banana", "cherry"]
random.sample(mylist, k=2)
['cherry', 'banana']
Xáo trộn list (đổi thứ tự phần tử)
Phương thức:
random.shuffle(mylist)
Ví dụ: Đổi thứ tự phần tử ngẫu nhiên
mylist = ["book", "pencil", "eraser"]
random.shuffle(mylist)
['eraser', 'pencil', 'book']
Phân phối Gaussian
Phương thức:
random.gauss(average, standard_dev)
Ví dụ: Số thực giả ngẫu nhiên có trung bình 100 và độ lệch chuẩn 50
random.gauss(100, 50)
123.59383
Phân phối mũ
Phương thức:
random.expovariate(lambda)
lambda>0, kết quả [0, infinity]lambda<0, kết quả [-infinity, 0]Ví dụ: Số thực giả ngẫu nhiên theo phân phối mũ với lambda = 1.5: random.expovariate(1.5)
0.2234355
Mô phỏng Sự kiện Rời rạc bằng Python