เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับตัวเลขเป็นอินพุตแรกและป้อนตัวเลขสูงสุดเป็นอินพุตที่สอง
ฟังก์ชันควรสร้างตัวเลขสุ่มสี่ตัว ซึ่งเมื่อรวมกันแล้วควรเท่ากับจำนวนที่กำหนดให้ทำหน้าที่เป็นอินพุตแรก และตัวเลขทั้งสี่ตัวไม่ควรเกินตัวเลขที่ระบุเป็นอินพุตที่สอง
ตัวอย่างเช่น − หากอาร์กิวเมนต์ของฟังก์ชันคือ −
const n = 10; const max = 4;
จากนั้น
const output = [3, 2, 3, 2];
เป็นชุดค่าผสมที่ถูกต้อง
โปรดทราบว่าอนุญาตให้ใช้ตัวเลขซ้ำได้
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const total = 10; const max = 4; const fillWithRandom = (max, total, len = 4) => { let arr = new Array(len); let sum = 0; do { for (let i = 0; i < len; i++) { arr[i] = Math.random(); } sum = arr.reduce((acc, val) => acc + val, 0); const scale = (total − len) / sum; arr = arr.map(val => Math.min(max, Math.round(val * scale) + 1)); sum = arr.reduce((acc, val) => acc + val, 0); } while (sum − total); return arr; }; console.log(fillWithRandom(max, total));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
[ 3, 3, 2, 2 ]
ผลลัพธ์คาดว่าจะแตกต่างกันในแต่ละรอบ