Coding for KidsCoding for Kids
ระดับสร้างสรรค์ความท้าทายคู่มือครู
โหวตสำหรับฟีเจอร์
หลักสูตรการพัฒนาด้วย Python ขั้นสูง
บทที่
>
ระดับ

โมดูลคณิตศาสตร์
โมดูลสุ่ม

วัตถุประสงค์

ทำการจำลองและทดสอบเพื่อเตรียมความพร้อมสำหรับความผิดพลาดและอุปสรรคระหว่างการก่อสร้างไร่โดยใช้โมดูล random.

เมื่อข้ามส่วนเพิ่มเติม จะมีสำนักงานที่จัดการหน้าที่ทางการบริหารบางอย่างที่เกี่ยวข้องกับงานเอกสารเกี่ยวกับการขนส่ง ที่อยู่อาศัย และโลจิสติกส์สำหรับการก่อสร้าง เป็นความคิดที่ดีที่จะรันสถานการณ์ต่างๆ โดยใช้ข้อมูลที่มีอยู่เพื่อคำนวณอุปสรรคและความล้มเหลวของอุปกรณ์ เพื่อช่วยในเรื่องนี้ เรามีโมดูล random ซึ่งเปิดใช้งานด้วย import random

โมดูลนี้ถูกใช้เพื่อสร้างผลลัพธ์แบบสุ่มในระดับต่างๆ ทำให้คุณสามารถรันการจำลองหรือเพิ่มองค์ประกอบแบบสุ่มในคำนวณ/แบบฝึกหัดของคุณ สำหรับวัตถุประสงค์ของเรา เราจะใช้ฟังก์ชันต่อไปนี้:

  • random.seed(): ตั้งค่า seed สำหรับการสร้างค่าแบบสุ่ม รับอาร์กิวเม้นต์เพียงหนึ่งตัว ซึ่งเป็นหมายเลข seed ที่คุณต้องการใช้ หมายความว่าฟังก์ชันสุ่มใดๆ ที่ใช้ seed ที่กำหนดจะให้ผลลัพธ์เหมือนเดิมเมื่อใช้งาน ฟังก์ชันนี้ใช้เพื่อควบคุมการสร้างค่าที่สุ่มและสามารถสร้างผลลัพธ์บางอย่างซ้ำได้
  • random.random(): คืนค่าจำนวนทศนิยมแบบสุ่มระหว่าง 0 และ 1.
  • random.randint(): รับอาร์กิวเม้นต์สองตัว สร้างตัวเลขระหว่างตัวเลขทั้งสองรวมถึงตัวเลขเอง ผลลัพธ์จะถูกคืนเป็นจำนวนเต็ม
  • random.uniform(): เหมือนกับฟังก์ชันก่อนหน้า แต่คืนค่าจำนวนทศนิยมแบบสุ่มแทนที่จะเป็นจำนวนเต็ม
  • random.triangular(): เหมือนกับฟังก์ชันก่อนหน้าแต่มีอาร์กิวเม้นต์เพิ่มเติมเป็นตัวปรับโมด (mode) โดย mode จะต้องเป็นตัวเลขระหว่างสองตัวเลขในช่วงสุ่ม ตัวเลขสุ่มที่สร้างจะมีแนวโน้มทางสถิติใกล้เคียงกับ mode มากกว่าการสุ่มอย่างแท้จริงระหว่างสองอาร์กิวเม้นต์แรก
  • random.choice(): รับอาร์กิวเม้นต์เป็นลิสต์ เลือกหนึ่งรายการจากลิสต์อย่างสุ่ม
  • random.choices(): สร้างลิสต์สุ่มที่สุ่มตัวอย่างมาจากลิสต์อื่น ๆ รับอาร์กิวเม้นต์สามตัว คือ ลิสต์ที่คุณต้องการสุ่มตัวอย่าง, ลิสต์อีกตัวที่คุณสามารถระบุได้ว่าต้องการน้ำหนักการสุ่มสำหรับแต่ละรายการในลิสต์ และสุดท้ายตัวแปรชื่อ k ที่คุณสามารถกำหนดค่าเพื่อระบุจำนวนตัวอย่างที่ต้องการสุ่มจากลิสต์ จำนวนตัวอย่างสามารถมากกว่าขนาดของลิสต์เองได้เนื่องจากจะสร้างรายการซ้ำตามน้ำหนักที่คุณกำหนด
  • random.shuffle(): รับอาร์กิวเม้นต์เป็นลิสต์และทำการสับรายการอย่างสุ่ม
  • random.sample(): รับอาร์กิวเม้นต์สองตัว คือ ลิสต์ที่ต้องการสุ่มตัวอย่างและจำนวนตัวอย่างที่คุณต้องการสุ่ม เป็นเวอร์ชันที่เรียบง่ายของ random.choices()

เริ่มต้นด้วยการเดินไปที่เครื่องหมาย X สีสว่างและหันหน้าไปที่โต๊ะ ใช้ฟังก์ชัน read() เพื่ออ่านบันทึกและระบุจุดข้อมูลที่จำเป็นสำหรับการรันการจำลองด้วยความแปรปรวนแบบสุ่ม เราจะรันการจำลองความล้มเหลวของอุปกรณ์ บันทึกจะระบุให้คุณทราบว่าจะใช้ seed อะไรสำหรับการสร้างค่าที่สุ่ม รวมถึงลิสต์ที่ถูกสุ่มตัวอย่างจาก ให้ใช้ฟังก์ชัน random.seed() และใส่ค่า seed ที่ระบุในบันทึก

เดินไปที่เครื่องหมาย X สีเข้มเหนือพรมสีน้ำเงินและหันหน้าไปที่โต๊ะ เรามีค่าคงที่ลิสต์ชื่อ sectors ซึ่งประกอบด้วยพื้นที่ของไร่ที่ระบุไว้ในบันทึกก่อนหน้า สร้างตัวแปรชื่อ selection เพื่อเก็บค่าของ random.choice() โดยใช้ค่าคงที่ลิสต์ sectors ในการสุ่มตัวอย่างจากลิสต์ดังกล่าว เช่นนี้: selection = random.choice(sectors) สร้างตัวแปรอีกตัวชื่อ delay และเก็บค่าของ random.random() เพื่อจำลองข้อผิดพลาดที่เกิดจากความล่าช้า

สร้างตัวแปรอีกตัวชื่อ defect และเก็บค่าของ random.randint() เพื่อสร้างเปอร์เซ็นต์ของความล้มเหลวที่อาจเกิดขึ้นของอุปกรณ์ โดยเพิ่มอาร์กิวเม้นต์ 0 และ 15 เพื่อสร้างเปอร์เซ็นต์ระหว่างตัวเลขทั้งสอง เมื่อได้ตั้งค่าตัวแปร selection , delay และ defect เสร็จเรียบร้อยแล้ว ให้ใช้ฟังก์ชัน write() ที่เขียนไว้ล่วงหน้าพร้อมกับตัวแปรทั้งสามนี้ตามลำดับ เพื่อบันทึกจุดข้อมูลที่สามารถใช้ทดสอบปัญหาที่อาจเกิดขึ้นในการก่อสร้าง

เดินไปที่เครื่องหมาย X สีทองและใช้ฟังก์ชัน read() เพื่อดำเนินการพยากรณ์ต่อไป ข้อมูลในบันทึกจะประกอบไปด้วยวัสดุ, ปริมาณ และข้อมูลการสุ่มตัวอย่าง เราจะรันการจำลองขนาดใหญ่โดยใช้ข้อมูลในบันทึก รวมถึงค่าคงที่ลิสต์ชื่อ materials ที่จัดเก็บประเภทของวัสดุตามที่ระบุในบันทึก

เดินไปที่เครื่องหมาย X สีเข้มเหนือพรมสีแดงและหันหน้าไปที่โต๊ะ สร้างลิสต์ชื่อ weights และเก็บค่าตัวเลขสี่ตัวที่ระบุในบันทึกซึ่งสอดคล้องกับวัสดุตามลำดับที่ปรากฏ ยกตัวอย่างเช่น: weights = [400, 600 , -insert value-, -insert value-]

สร้างตัวแปรชื่อ simulation และเก็บค่าของ random.choices() โดยเพิ่มค่าลิสต์คงที่ materials ลิสต์ weights ที่คุณสร้าง และลิสต์ที่ชื่อ k ซึ่งเก็บหน่วยการสุ่มตัวอย่างตามที่ระบุในบันทึก เช่นนี้: simulation = random.choices(materials, weights , k = insert sampling units ) ใช้ตัวแปร simulation ร่วมกับฟังก์ชัน write() ที่เขียนไว้ล่วงหน้าเพื่อบันทึกจุดข้อมูล

เดินไปที่เครื่องหมาย X สีเข้มเหนือพรมสีเขียวและหันหน้าไปที่โต๊ะ ใช้ฟังก์ชัน random.shuffle() กับลิสต์ simulation ที่คุณสร้างเพื่อสับลำดับรายการ เช่นนี้: random.shuffle(simulation) ซึ่งจะทำการสับลิสต์ ไม่มีความจำเป็นต้องเก็บค่าไว้เพราะฟังก์ชันนี้จะแก้ไขลิสต์โดยตรง สร้างลิสต์ชื่อ sample เพื่อเก็บค่าของ random.sample() โดยเพิ่มลิสต์ simulation เป็นอาร์กิวเม้นต์แรก และสำหรับอาร์กิวเม้นต์ที่สอง ให้สุ่มตัวอย่าง 3 ตัวเพื่อรับสามรายการแบบสุ่ม เช่นนี้: sample = random.sample(simulation, k=3) ใช้ simulation และ sample ร่วมกับฟังก์ชัน write() ที่เขียนไว้ล่วงหน้าเพื่อบันทึกตัวอย่างใหม่

สุดท้ายเดินไปที่เครื่องหมาย X สีเข้มเหนือพรมสีม่วงและหันหน้าไปที่โต๊ะ สร้างตัวแปรชื่อ defect และเก็บผลลัพธ์จาก random.uniform() โดยเพิ่มอาร์กิวเม้นต์ 3 และ 10 ซึ่งเป็นค่าการสุ่มสำหรับการจำลองเดิมและตัวอย่างที่ถูกดึงออกมา เราจะใช้ค่านี้เพื่อสร้างขอบเขตความล้มเหลวของอุปกรณ์ที่อาจเกิดขึ้นจากตัวอย่างที่เราได้สุ่มตัวอย่างไว้

สร้างตัวแปรชื่อ losses และเก็บค่าของ random.triangular() โดยเพิ่มค่า 200 , 600 และ 400 ซึ่งเป็นค่าจำนวนวัสดุตามที่ระบุไว้ในบันทึกก่อนหน้า โดยเฉพาะค่าน้อยสุด ค่าสูงสุด และค่าที่ใกล้เคียงกับค่ากลาง ซึ่งจะช่วยให้เราได้ค่าจำนวนวัสดุแบบสามเหลี่ยมตามการใช้งานในการจำลอง ใช้ค่าของ defect และ losses ร่วมกับฟังก์ชัน write() ที่เขียนไว้ล่วงหน้าเพื่อรับผลลัพธ์และทำให้ระดับเสร็จสมบูรณ์

หนังสือโค้ด