मान लीजिए कि हमारे पास एक सरणी ग्राहक है, जहां ग्राहक [i] =एक जोड़ी रखता है [arrival_i, time_i], यहां आगमन_i ith ग्राहक का आगमन समय है। और आगमन का समय कम से उच्च में क्रमबद्ध किया जाता है। और time_i ith ग्राहक का ऑर्डर तैयार करने के लिए आवश्यक समय है। अब, जब कोई ग्राहक आता है, तो वह ऑर्डर देता है, और कुक के खाली होने पर केवल वही ऑर्डर तैयार करना शुरू होता है। रसोइया एक समय में एक से अधिक ग्राहकों के लिए भोजन नहीं बनाता है। और वह तैयारी करता है ताकि उन्हें उनके आदेश दिए गए। हमें सभी ग्राहकों का औसत प्रतीक्षा समय ज्ञात करना होगा।
इसलिए, यदि इनपुट ग्राहकों की तरह है =[[7,2], [8,4], [10,3], [20,1]], तो आउटपुट 3.5 होगा क्योंकि,
-
पहला ग्राहक 7 बजे आया था, रसोइया ऑर्डर लेता है और इसे तुरंत 7 समय पर तैयार करना शुरू कर देता है, और समय 9 पर समाप्त हो जाता है, इसलिए पहले ग्राहक के लिए प्रतीक्षा समय 9 - 7 =2 है।
-
दूसरा ग्राहक 8 बजे आया, रसोइया उसका आदेश लेता है और 9 समय पर तैयार करना शुरू करता है, और समय 13 पर समाप्त होता है, इसलिए दूसरे ग्राहक का प्रतीक्षा समय 13 - 8 =5 है।
-
तीसरा ग्राहक 10 बजे आया, शेफ उसका ऑर्डर लेता है और 13 समय पर तैयार करना शुरू करता है, और 16 बजे खत्म करता है, इसलिए तीसरे ग्राहक के लिए प्रतीक्षा समय 16 - 10 =6 है।
-
चौथा ग्राहक 20 पर आया, शेफ उसका ऑर्डर लेता है और तुरंत 20 बजे तैयार करना शुरू कर देता है, और 21 समय पर खत्म हो जाता है, इसलिए चौथे ग्राहक का प्रतीक्षा समय 21 - 20 =1 है।
-
तो औसत प्रतीक्षा समय =(2 + 5 + 6 + 1) / 4 =3.5.
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- गिरफ्तारी:=एक नई सूची
- समय :=0
- ग्राहकों में प्रत्येक जोड़ी (i, j) के लिए, करें
- अगर मैं> समय, तो
- समय :=i + j
- अन्यथा,
- समय:=समय + जे
- अगर मैं> समय, तो
- गिरफ्तारी के अंत में (समय-i) डालें
- वापसी (गिरफ्तारी में सभी वस्तुओं का औसत)
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(customers): arr = [] time = 0 for i , j in customers: if(i > time): time = i + j else: time += j arr.append(time - i) return sum(arr) / len(arr) customers = [[7,2],[8,4],[10,3],[20,1]] print(solve(customers))
इनपुट
[[7,2],[8,4],[10,3],[20,1]]
आउटपुट
3