簡體   English   中英

沿時間間隔在數組中分配一個值。 我正在使用nodejs。

[英]Distribute a value value along time interval in array. I am using nodejs.

抱歉,如果文字令人困惑,我不會說英語。

我的問題是:1.我有已打印的頁數。 2.打印持續時間(開始時間和完成時間)3.我想按小時繪制圖表,而每小時頁數

示例:900頁1:30我要這個小時數組:[600,300]

我認為這更多是數學上的問題,但是我沒有個好主意。 有很多數據,我需要快速並優化算法。

Obs:我對邏輯更感興趣,而不是編程語言。

好的,不確定是否適用於一切,但我認為這是一個好的開始。 我假設您的持續時間以分鍾為單位,否則我相信您可以將其轉換為分鍾。

 function something(pages,totalDutation){ // pages = 900 // totalDutation = 90 var printsPerMinute = pages / totalDutation //get the prints per minute! var printsPerHour = Math.floor(printsPerMinute * 60) //calculate the prints made in one hour var countOfHours = parseInt(totalDutation / 60) //divide the total duration by 60 to get the count of hours var remainingPrints = (totalDutation % 60) * printsPerMinute //add the extra prints that didn't complete a whole hour. var result = Array(countOfHours).fill(printsPerHour) //create an array and fill it. if(remainingPrints) result.push(remainingPrints) return result } 

看一下下面的NodeJS示例,以了解如何完成它。 不過,可能需要進行一些微調。

  1. 計算每小時的打印數量
  2. 進行盡可能多的迭代
  3. 做(總打印數-每小時打印數)只要a> b,否則返回剩余的總打印數

     const getPagesPerHour = function (totalPrints, totalTime) { const printsPerHour = (totalPrints / totalTime) * 60; return Array.apply(null, { length: Math.ceil(totalPrints/printsPerHour) }).map(function (val, key) { if (totalPrints > printsPerHour) { totalPrints = (totalPrints - printsPerHour); return printsPerHour; } else { return totalPrints; } }); } console.log(getPagesPerHour(900, 90)); // [600, 300] 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM