Kursus Pembangunan Python Lanjutan
Bab
>
Tahap
Modul Matematik
Modul Rawak
Objektif
Jalankan simulasi dan ujian untuk menyediakan persiapan terhadap sebarang ralat dan gangguan semasa pembinaan ladang dengan menggunakan modul random.
Menyebrang annex terdapat sebuah pejabat yang mengendalikan beberapa tugas pentadbiran berkaitan dengan pengurusan dokumen penghantaran, perumahan dan logistik untuk pembinaan. Ia adalah idea yang baik untuk menjalankan beberapa senario menggunakan data yang ada untuk mengira gangguan dan kegagalan peralatan. Untuk membantu dengan ini, kita mempunyai modul random, diaktifkan dengan import random .
Modul ini digunakan untuk menghasilkan output rawak dalam pelbagai tahap yang membolehkan anda menjalankan simulasi atau menambah elemen rawak kepada pengiraan/latihan anda. Untuk tujuan kita, kita akan menggunakan fungsi-fungsi berikut:
random.seed(): Menetapkan biji untuk penjanaan rawak, mengambil satu argumen iaitu nombor biji yang anda ingin gunakan. Ini bermakna sebarang fungsi rawak yang digunakan dengan biji yang diberikan akan menghasilkan keputusan yang sama apabila digunakan. Ini digunakan untuk mengawal penjanaan rawak dan membolehkan menghasilkan semula keputusan tertentu.random.random(): Mengembalikan titik terapung (float) rawak antara0dan1.random.randint(): Mengambil dua (2) argumen, menghasilkan nombor antara dua argumen tersebut, termasuk nombor itu sendiri. Hasilnya dikembalikan sebagai nombor bulat (integer).random.uniform(): Sama seperti fungsi sebelumnya tetapi mengembalikan nombor titik terapung (float) rawak dan bukannya nombor bulat.random.triangular(): Sama seperti fungsi sebelumnya tetapi mempunyai satu argumen tambahan sebagai pengubah yang dipanggil mode. Mode perlu menjadi nombor antara dua nombor dalam julat rawak. Nombor rawak yang dijana akan menjadi nombor yang secara statistik lebih hampir kepada mode berbanding nombor rawak sepenuhnya antara dua (2) argumen pertama.random.choice(): Mengambil senarai sebagai argumen, memilih satu (1) item dari senarai secara rawak.random.choices(): Menjana senarai rawak yang disampel dari senarai lain, mengambil tiga (3) argumen: satu senarai yang anda ingin sampel daripada, satu lagi senarai yang anda boleh nyatakan yang memberitahu berapa banyak berat yang anda ingin ambil sampel bagi setiap item dalam senarai yang anda sampel, dan akhirnya satu pembolehubah bernama k yang anda boleh tetapkan nilai yang menerangkan berapa banyak sampel yang anda ingin ambil dari senarai tersebut. Bilangan sampel boleh lebih panjang daripada senarai itu sendiri kerana ia akan menghasilkan pendua berdasarkan berat yang anda tetapkan.random.shuffle(): Mengambil satu senarai sebagai argumen dan mengocokkannya secara rawak.random.sample(): Mengambil dua argumen, satu senarai untuk disampel dan bilangan sampel yang anda ingin ambil. Versi mudah kepadarandom.choices().
Untuk memulakan, berjalanlah ke tanda X cair dan hadap meja, gunakan fungsi read() untuk membaca memo dan mengenal pasti titik data yang diperlukan untuk menjalankan simulasi dengan beberapa varians rawak. Kita akan menjalankan simulasi kegagalan peralatan, memo akan memberitahu anda nilai seed untuk dijalankan bagi penjanaan rawak serta senarai yang disampel. Gunakan fungsi random.seed() dan masukkan nilai yang disediakan dalam memo.
Berjalanlah ke tanda X gelap di atas karpet biru dan hadap meja, kita mempunyai senarai tetap bernama sectors yang mengandungi kawasan ladang yang dihuraikan dalam memo sebelum ini. Buat satu pembolehubah bernama selection untuk menyimpan nilai random.choice(), gunakan senarai tetap sectors untuk mendapatkan sampel daripada senarai, seperti ini: selection = random.choice(sectors). Buat satu lagi pembolehubah bernama delay dan simpan nilai random.random() untuk mensimulasikan margin kesilapan yang disebabkan oleh kelewatan.
Buat satu lagi pembolehubah bernama defect dan simpan nilai random.randint() untuk menghasilkan peratusan kegagalan peralatan yang berpotensi. Tambahkan argumen 0 dan 15 untuk menghasilkan peratusan antara dua nombor ini. Setelah pembolehubah: selection, delay dan defect telah disediakan, gunakan fungsi write() yang telah ditulis terlebih dahulu dengan tiga (3) pembolehubah tersebut dalam urutan yang diberikan, untuk merekodkan titik data yang boleh digunakan untuk menguji masalah potensi dalam pembinaan.
Berjalanlah ke tanda X emas dan gunakan fungsi read() untuk terus menjalankan unjuran, data dalam memo akan mengandungi bahan, kuantiti dan data pensampelan. Kita akan menjalankan simulasi yang lebih besar menggunakan data dalam memo, termasuk senarai tetap bernama materials yang menyimpan jenis bahan yang dihuraikan dalam memo.
Berjalanlah ke tanda X gelap di atas karpet merah dan hadap meja. Buat satu senarai bernama weights dan simpan empat (4) nilai nombor yang terdapat dalam memo yang sepadan dengan bahan mengikut urutan yang disampaikan. Sebagai contoh: weights = [400, 600 , -insert value-, -insert value-]
Buat satu pembolehubah bernama simulation dan simpan nilai random.choices(), tambahkan senarai tetap materials, senarai weights yang anda buat dan satu senarai bernama k yang memegang unit pensampelan yang dihuraikan dalam memo, seperti ini: simulation = random.choices(materials, weights , k = insert sampling units ). Gunakan pembolehubah simulation dengan fungsi write() yang telah ditulis terlebih dahulu untuk merekodkan data.
Berjalanlah ke tanda X gelap di atas karpet hijau dan hadap meja, gunakan fungsi random.shuffle() dengan senarai simulation yang anda buat untuk mengocokkannya, seperti ini: random.shuffle(simulation). Ini akan mengocok senarai, tiada keperluan untuk menyimpan nilai kerana ia mengubah senarai secara langsung. Buat satu senarai bernama sample untuk menyimpan nilai random.sample(), tambahkan senarai simulation sebagai argumen pertama dan untuk argumen kedua, ambil sampel 3 untuk mengambil tiga (3) item rawak sebagai sampel, seperti ini: sample = random.sample(simulation, k=3). Gunakan simulation dan sample dengan fungsi write() yang telah ditulis terlebih dahulu untuk merekodkan sampel baru.
Akhir sekali, berjalanlah ke tanda X gelap di atas karpet ungu dan hadap meja, buat satu pembolehubah bernama defect dan simpan hasil random.uniform(), tambahkan argumen 3 dan 10. Ini adalah nilai pensampelan untuk simulasi asal dan sampel yang diambil daripadanya, kita akan menggunakan ini untuk menjana margin kecacatan peralatan yang berpotensi daripada sampel yang kita ambil.
Buat satu pembolehubah bernama losses dan simpan nilai random.triangular(), tambahkan nilai 200, 600 dan 400. Ini adalah nombor bahan yang dihuraikan dalam memo sebelum ini, khususnya yang paling rendah, tertinggi dan nilai yang paling hampir dengan tengah. Ini membolehkan kita mendapatkan nilai rawak segitiga berdasarkan bilangan bahan yang digunakan dalam simulasi. Gunakan nilai defect dan losses dengan fungsi write() yang telah ditulis terlebih dahulu untuk mendapatkan keputusan dan melengkapkan tahap ini.