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