[英]How to calculate distinct minutes in a time period
不確定與眾不同是否是正確的詞。
這是一個虛構的場景,用來解釋我想要得到的東西。
假設有兩個美發沙龍。
沙龍A有2名員工。 沙龍B有1名員工。
假設我要計算給定小時內沙龍活動的分鍾數。
如果沙龍A具有以下頭發任命:
沙龍B的發型如下:
在這種情況下,我想看看:
然后,我可以說,如果客戶E去沙龍A,他們將等待隊列中每個前面的人大約6分鍾去理發,但是如果他們去沙龍B,則將等待10分鍾。對於他們前面的每個客戶。 (活動按客戶完成划分)。 我需要一種無需依賴沙龍員工人數即可計算出的方法。
我能想到的一種方法是擁有一個數組,並用唯一的分鍾數填充它。 例如激怒預訂,並將每一分鍾添加到數組中,隨后的預訂將只寫出已經填寫的現有分鍾數,然后我將得到一個包含沙龍A的12個項目(分鍾)和一個包含20個項目(分鍾)的數組),對於沙龍B。我相信這會奏效,但想知道是否有更好/更實用的方法?
我不在乎什么語言只想看邏輯。
這里是使用JavaScript的簡單嘗試。
假設每個客戶10分鍾,這是一個常數。 因此,對於沙龍B來說,這非常容易:只有1個理發師,活動時間是10 *客戶數量 。
現在,對於沙龍A,說app
是一個數組,用於存儲每個約會的起點。 例如:
var app = [0, 2, 10, 13, 20, 32]
這意味着有6個客戶(可能像這樣:理發師A有0-10、10-20、20-30、32-42,理發師B有2-12、13-23,不良理發師A)。
而且我們還有一個timeline
。 讓我們遍歷app
:
var timeline = [];
for(var i = 0; i < app.length; i++) {
for(var j = app[i]; j < app[i] + 10; j++) {
timeline[j] = 1;
}
}
現在, timeline
明確記錄了每一個活動的分鍾,也包含不活動的漏洞。 1
表示有效, undefined
表示無效。
然后,我們減少timeline
,它將自動跳過undefined
:
var activity = timeline.reduce(function(a, b) {
return a + b;
});
activity; // 40
編輯:這只是一個解決方案,我確定還有其他解決方案,可能會比這個解決方案好:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.