ผลการจับรางวัลที่ทำซ้ำได้
คุณทำงานเป็นโปรแกรมเมอร์ให้กับบริษัทลอตเตอรีออนไลน์ ตามกฎหมาย การคัดเลือกผู้ถูกรางวัลต้องเป็นแบบสุ่มและต้องโปร่งใส
ใน 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)