ปัญหา
มี random7() คืน 1-7 แบบสุ่ม เขียน random10() ให้คืน 1-10 โดยใช้แค่ random7() ไม่ใช้ library อื่น
โค้ดตัวอย่าง
const random7 = () => Math.ceil(Math.random() * 7);
const random10 = () => {
let sum;
for(let i = 0; i < 50; i++){ sum += random7(); }
return (sum % 10) + 1;
};
console.log(random10());
คำอธิบาย
สุ่มผลรวมมากๆ (50 ครั้ง) แล้ว modulo 10 + 1 เพื่อกระจายให้สม่ำเสมอ (ประมาณการ)
ผลลัพธ์
NaN
หมายเหตุ: โค้ดตัวอย่างมีบั๊ก: ตัวแปร sum ไม่ได้กำหนดค่าเริ่มต้น ทำให้ได้ NaN ควรเป็น let sum = 0;