เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ทอยลูกเต๋า

มาสร้าง generator แบบอนันต์กัน! โจทย์คือให้นิยาม generator ชื่อ simulate_dice_throws() ซึ่งจำลองผลการทอยลูกเต๋า 6 หน้า แล้วเก็บผลลัพธ์ไว้ในรูปแบบ dictionary ชื่อ out โดยแต่ละ key คือผลที่เป็นไปได้ (1, 2, 3, 4, 5, 6) และแต่ละ value คือ list ที่มี 2 ค่า ได้แก่ จำนวนครั้งที่ผลนั้นเกิดขึ้น และสัดส่วนของจำนวนครั้งนั้นต่อจำนวนการทอยทั้งหมด total ตัวอย่างเช่น (เมื่อ total = 4):

{
  1: [2, 0.5],
  2: [1, 0.25],
  3: [1, 0.25],
  4: [0, 0.0],
  5: [0, 0.0],
  6: [0, 0.0]
}

เคล็ดลับ: ใช้ฟังก์ชัน randint() จากโมดูล random (นำเข้าไว้แล้ว) เพื่อสุ่มจำนวนเต็มในช่วงที่กำหนด (เช่น randint(1, 2) จะได้ผลลัพธ์เป็น 1 หรือ 2)

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

ฝึกทำโจทย์สัมภาษณ์งานเขียนโค้ดด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • จำลองการทอยครั้งเดียวเพื่อสุ่มตัวเลขใหม่
  • อัปเดตจำนวนครั้งและสัดส่วนของผลลัพธ์นั้น
  • Yield dictionary ที่อัปเดตแล้ว
  • สร้าง generator และจำลองการทอย 1000 ครั้ง

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

def simulate_dice_throws():
    total, out = 0, dict([(i, [0, 0]) for i in range(1, 7)])
    while True:
        # Simulate a single toss to get a new number
        num = ____
        total += 1
        # Update the number and the ratio of realizations
        out[num][0] = ____
        for j in range(1, 7):
        	out[j][1] = round(____/____, 2)
        # Yield the updated dictionary
        ____

# Create the generator and simulate 1000 tosses
dice_simulator = ____
for i in range(1, 1001):
    print(str(i) + ': ' + str(____(____)))
แก้ไขและรันโค้ด