Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

สร้าง Random10() จาก Random7() ใน JavaScript

ปัญหา

มี 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;