第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將數(shù)字盡可能均勻地分配到數(shù)組中?

如何將數(shù)字盡可能均勻地分配到數(shù)組中?

ITMISS 2023-07-14 09:42:55
我正在嘗試將一個數(shù)字分配給一個數(shù)組。例如,const num = 30;const maxNumPerElement = 10;const arr = getDistributedArray(num, maxNumPerElement);console.log(arr);結(jié)果應(yīng)該是[10, 10, 10]另一個例子,const num = 32;const maxNumPerElement = 10;const arr = getDistributedArray(num, maxNumPerElement);console.log(arr);結(jié)果應(yīng)該是[8, 8, 8, 8]最后一個例子,const num = 34;const maxNumPerElement = 10;const arr = getDistributedArray(num, maxNumPerElement);console.log(arr);結(jié)果應(yīng)該是[9, 9, 8, 8]這是我的代碼,只能工作到 98。如果達(dá)到 99,它就不再工作,我不知道為什么。    const num = 99;    const maxNumPerElement = 10;    if (num > maxNumPerElement) {        const numSubtitles = Math.ceil(num / maxNumPerElement);        const minNumPerElement = Math.floor(num / numSubtitles);        const numArray = new Array(numSubtitles).fill(minNumPerElement);        const remainder = num % minNumPerElement;        for (let i = 0; i < remainder; i++) {            numArray[i]++;        }        const sum = numArray.reduce(function (a, b) {            return a + b;        }, 0);        if (sum !== num) {            console.log("ERROR!!", num, numArray);        }        else {            console.log(num, numArray);        }    }結(jié)果:ERROR!! 99 [9, 9, 9, 9, 9, 9, 9, 9, 9, 9]這看起來很容易,但我無法解決。有沒有簡單的方法可以解決這個問題?
查看完整描述

1 回答

?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗 獲得超4個贊

也許你正在尋找這樣的東西:


function getDistributedArray(n, max) {

    var a = [];

    var r = n; // rest of total sum

    var c = Math.ceil(n / max); // get maximal number of elements in array

    var i = 0; // index

    while (r > 0) {

        var t = Math.ceil(r / c); // get max number from the rest

        a[i++] = t;

        r -= t;

        c--;

    }

    return a;

}


console.log(getDistributedArray(30, 10)); // [10, 10, 10]

console.log(getDistributedArray(32, 10)); // [8, 8, 8, 8]

console.log(getDistributedArray(34, 10)); // [9, 9, 8, 8]

console.log(getDistributedArray(99, 10)); // [10, 10,..., 9]


查看完整回答
反對 回復(fù) 2023-07-14
  • 1 回答
  • 0 關(guān)注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號