एक अस्सी-आर्ट रोड और मुझे इसे पार करने में लगने वाले समय को देखते हुए , मुझे बताएं कि क्या मैं तेज गति से चल रहा था।
इकाइयों
की मनमानी इकाई में दूरी है d
। समय की मनमानी इकाई में है t
।
रास्ता
यहाँ एक साधारण सड़क है:
10=====
10
साधन 10 d
प्रति t
। यह सड़क के लिए गति सीमा है। सड़क की 5 =
एस है, इसलिए इसका d
5. है। इसलिए, अगर मैं 0.5 में उस सड़क को पार करता हूं, तो मैं t
10 d
प्रति गया t
, क्योंकि 5 / 0.5 = 10. उस सड़क की गति सीमा 10 है, इसलिए मैं गति सीमा के भीतर रहा।
लेकिन अगर मैं उस सड़क को 0.25 में पार करता t
हूं, तो मैं 20 d
प्रति गया t
, क्योंकि 5 / 0.25 = 20. उस सड़क की गति सीमा 10 है, इसलिए मैं गति सीमा से 10 अधिक हो गया।
उदाहरण और गणना
ध्यान दें कि इनपुट 1 वह समय है जो मैंने सड़क यात्रा के लिए लिया था, और इनपुट 2 सड़क ही है।
यहाँ एक जटिल सड़क है:
Input 1: 1.5
Input 2: 5=====10=====
सबसे तेज़ (कानूनी रूप से) मैं पहली सड़क पर जा सकता था (पहले 5 =
एस) 5 d
प्रति t
। चूंकि 5 (दूरी) को 5 से विभाजित किया गया है (गति सीमा) 1 है, सबसे तेज मैं उस सड़क पर जा सकता था 1 t
।
अगली सड़क पर, गति सीमा 10 है और दूरी भी 5 है, सबसे तेज मैं पार कर सकता है जो 0.5 (5/10) है। 1.5 में न्यूनतम समय परिणाम कुल मिलाकर, जिसका अर्थ है कि मैं बिल्कुल गति सीमा पर चला गया ।
नोट: मुझे पता है, मैं एक सड़क पर वास्तव में तेजी से जा रहा हूं और वास्तव में दूसरे पर धीमा और अभी भी 1.5 में पार कर सकता हूं, लेकिन यहां सबसे अच्छा मान लें।
एक अंतिम उदाहरण:
Input 1: 3.2
Input 2: 3.0==========20===
पहली सड़क 10 लंबी है और 3 की गति सीमा है, इसलिए न्यूनतम समय 3.33333 है ... (10 / 3.)
दूसरी सड़क 3 लंबी है और इसकी गति सीमा 20 है, इसलिए न्यूनतम समय 0.15 (3/20) है।
3.483333333 में परिणाम कुल मिलाकर ... मैंने इसे 3.2 में पार कर लिया है, इसलिए मुझे कहीं तेज होना था।
टिप्पणियाँ:
- यदि मुझे निस्संदेह गति मिल रही है, तो आपको एक अलग मूल्य का उत्पादन करना होगा और अगर मैं नहीं कर सकता तो एक अलग मूल्य।
- आपके प्रोग्राम या फ़ंक्शन को एक अनुगामी न्यूलाइन होने के लिए इनपुट या आउटपुट की आवश्यकता हो सकती है, लेकिन कृपया इसे अपने सबमिशन में कहें।
- आपका पहला इनपुट मेरी गति होगी। यह एक सकारात्मक फ्लोट या पूर्णांक या स्ट्रिंग होगा।
- आपका दूसरा इनपुट सड़क होगा। यह हमेशा रेगेक्स से मेल खाएगा
^(([1-9]+[0-9]*|[0-9]+\.[0-9]+)=+)+\n?$
। यदि आप रुचि रखते हैं तो आप यहां संभावित इनपुट का परीक्षण कर सकते हैं। - आप एक फ़ंक्शन या प्रोग्राम के 2 मापदंडों में इनपुट ले सकते हैं, 2 अलग-अलग फ़ाइलों में, STDIN से दो बार, या एक अलग-अलग स्ट्रिंग से STDIN, एक फ़ंक्शन, एक फ़ाइल या एक कमांड-लाइन पैरामीटर।
- यदि आप चाहें, तो आप इनपुट के क्रम को बदल सकते हैं।
- कोई सवाल? नीचे टिप्पणी और खुश कोड-गोल्फ आईएनजी में पूछें !
^(([1-9]+[0-9]*|(?!0\.0+\b)[0-9]+\.[0-9]+)=+)+\n?$
। (यह एक खोज के साथ क्लीनर होता, लेकिन तब इसे .Net इंजन की आवश्यकता होती है)