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

การสร้างตัวอย่างจาก Permutation

จากที่ได้ศึกษาในแบบฝึกหัดก่อนหน้า เราต้องสร้างตัวอย่างจาก permutation โดยสลับค่าที่ตำแหน่งเดียวกันในอาร์เรย์ semi_times และ final_times แบบสุ่ม ให้เขียนฟังก์ชันที่มี signature เป็น swap_random(a, b) ซึ่งคืนค่าอาร์เรย์ที่มีการสลับค่าระหว่าง a และ b ในตำแหน่งที่เลือกแบบสุ่ม

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

กรณีศึกษาด้านการคิดเชิงสถิติ

ดูคอร์ส

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

  • กำหนดฟังก์ชันที่มี signature เป็น swap_random(a, b) โดยทำดังนี้
    • สร้างอาร์เรย์ swap_inds ที่มีความยาวเท่ากับอาร์เรย์ input โดยแต่ละค่าเป็น True ด้วยความน่าจะเป็น 50/50 คำใบ้: ใช้ np.random.random() พร้อม keyword argument size=len(a) ค่าที่ได้แต่ละตัวที่น้อยกว่า 0.5 ให้เป็น True
    • สร้างสำเนาของ a และ b ชื่อว่า a_out และ b_out ตามลำดับ โดยใช้ np.copy()
    • ใช้ Boolean indexing ร่วมกับอาร์เรย์ swap_inds เพื่อสลับค่าที่เหมาะสมจาก b เข้าไปใน a_out และจาก a เข้าไปใน b_out
    • คืนค่า a_out และ b_out

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

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

def ____(____, ____):
    """Randomly swap entries in two arrays."""
    # Indices to swap
    swap_inds = ____ < ____
    
    # Make copies of arrays a and b for output
    a_out = ____
    b_out = ____
    
    # Swap values
    ____[____] = ____[____]
    ____[____] = ____[____]

    return a_out, b_out
แก้ไขและรันโค้ด