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

ผลการจับรางวัลที่ทำซ้ำได้

คุณทำงานเป็นโปรแกรมเมอร์ให้กับบริษัทลอตเตอรีออนไลน์ ตามกฎหมาย การคัดเลือกผู้ถูกรางวัลต้องเป็นแบบสุ่มและต้องโปร่งใส

ใน workspace มีรายชื่อตั๋วลอตเตอรีชื่อ ls_tickets ซึ่งประกอบด้วย 51 องค์ประกอบ โดยแต่ละองค์ประกอบแทนรัฐในสหรัฐอเมริกาหนึ่งรัฐ และเก็บหมายเลขตั๋วลอตเตอรีของรัฐนั้น นอกจากนี้ยังมีฟังก์ชัน lottery() ที่สุ่มเลือกตั๋วที่ถูกรางวัลสำหรับแต่ละรัฐ กำลังทดสอบฟังก์ชัน lottery() โดยนำไปใช้กับ ls_tickets แบบขนานด้วย future_map() แต่ปัญหาคือผู้ถูกรางวัลแตกต่างกันทุกครั้งที่รันโค้ด โหลดแพ็กเกจ furrr ให้แล้ว

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

การเขียนโปรแกรมแบบขนานใน R

ดูคอร์ส

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

  • สร้างการกำหนดค่าสำหรับ future_map()
  • ตั้งค่า seed เป็น 4321 ในการกำหนดค่านั้น
  • ส่งการกำหนดค่านี้ให้กับ future_map()

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

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

lottery <- function(tickets) {
  sample(tickets, 1)
}

# Create a configuration for future_map()
config <- ___(
# Provide the seed 4321 to the correct argument   
  ___ = ___)

plan(multisession, workers = 4)
winners <- future_map(ls_tickets, lottery,
                      # Supply configuration to future_map()
                      ___ = ___)

plan(sequential)
แก้ไขและรันโค้ด