Materi
Nilai harapan di pelajaran sebelumnya dihitung dari daftar peluang yang lengkap. Bila model terlalu rumit untuk dihitung langsung, simulasi Monte Carlo dipakai: Statistics LibreTexts menggambarkannya sebagai kelompok algoritma yang bersandar pada pengambilan sampel acak berulang untuk mendapatkan hasil numerik. Dasarnya hukum bilangan besar: rata-rata sampel besar dari peubah acak yang bebas dan bersebaran sama mendekati rata-rata sebenarnya. Introductory Statistics (§4.2) menyatakannya untuk peluang: makin banyak percobaan, makin kecil selisih frekuensi relatif dengan peluang teoretisnya.
Di numpy, pembangkit bilangan acak dibuat dengan rng = np.random.default_rng(seed). Dokumentasinya menunjukkan bahwa seed yang sama menghasilkan bilangan yang sama lagi setelah Python dijalankan ulang, sehingga simulasi bisa diulang orang lain. rng.poisson(lam, size) mengambil sampel sebaran Poisson dengan rata-rata lam, dan rng.integers(low, high, size) mengambil bilangan bulat dari low sampai sebelum high.
Untuk persediaan, setiap sampel adalah satu hari permintaan. Rata-rata terjual adalah rata-rata dari minimum permintaan dan stok, sedangkan peluang kehabisan stok adalah rata-rata array boolean permintaan > stok, karena True dihitung 1 dan False 0.
import numpy as np
rng = np.random.default_rng(42)
pesanan = rng.integers(20, 41, size=100_000) # 20 sampai 40 porsi per hari
print(pesanan.mean()) # sekitar 30, rata-rata sebaran seragam 20..40
print((pesanan > 35).mean()) # sekitar 5/21 = 0,238