हमें एक 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 ]
आउटपुट प्रत्येक रन में अलग होने की उम्मीद है।