एक टकराव की भविष्यवाणी करें: क्या डाकू दूर हो जाएगा?


20

सड़क पर एक नंबर लाइन के रूप में सोचें, जो शुरू 0और अनिश्चित काल तक जारी रहे:

.................................................................

सड़क पर दो कारें हैं: Cऔर RCवह पुलिस वाला है जो Rलुटेरे को पकड़ने की कोशिश कर रहा है । Cशुरू होता है 0, और Rसड़क पर कहीं शुरू होता है:

C.............................R..................................

पुलिस पहले से ही चलती है - वह डाकू का पीछा कर रहा है। उसकी एक निरंतर गति है। लुटेरा अपनी कार में ही घुसा। वह तेजी ला रहा है। प्रत्येक टिक, डाकू की गति उसके त्वरण से बढ़ जाती है।

कहते हैं कि पुलिस की गति है 7और डाकू का त्वरण है 1। यदि डाकू शुरू होता है 30, तो यह वही है जो सड़क प्रत्येक टिक की तरह दिखाई देगी:

C.............................R..................................
.......C.......................R.................................
..............C..................R...............................
.....................C..............R............................
............................C...........R........................
...................................C.........R...................
..........................................C........R.............
.................................................C........R......

ऊपर अंतिम टिक के बाद, डाकू की गति पुलिस वाले के बराबर है, और वह अभी भी आगे है। चूंकि पुलिस लगातार गति से आगे बढ़ रही है और लुटेरा अभी भी तेजी से बढ़ रहा है, इसलिए लुटेरा भाग निकला, इसलिए आप एक सत्य मूल्य का उत्पादन करते हैं। हालांकि, अगर पुलिस की गति थी 9...

C.............................R..................................
.........C.....................R.................................
..................C..............R...............................
...........................C........R............................
....................................C...R........................
.............................................X...................

... तो पुलिस डाकू को पकड़ने से पहले डाकू को पकड़ लेती है (द्वारा चिह्नित X), तो आप एक गलत मूल्य का उत्पादन करते हैं।

आपका कार्य

तीन सूचनाओं को देखते हुए - पुलिस की गति, डाकू की स्थिति, और डाकू के त्वरण - निर्धारित करें कि डाकू दूर हो जाएगा या नहीं।

नियम

  • सिपाही हमेशा शुरू होता है 0
  • सभी इनपुट सकारात्मक पूर्णांक होंगे।
  • पुलिस लुटेरे को पकड़ लेती है, यदि किसी टिक के बाद, पुलिस की स्थिति डाकू की स्थिति से अधिक या उसके बराबर है।
  • जब वह पकड़ा नहीं जाता है तो लुटेरा भाग जाता है और उसकी गति पुलिस वाले से अधिक होती है।
  • आपका प्रोग्राम आउटपुट के बाद समाप्त होना चाहिए।
  • इससे पहले कि वह एक-एक टिक घुमाए, डाकू तेजी पकड़ लेता है।

परीक्षण के मामलों

Cop Speed, Robber Position, Robber Acceleration -> Output

7, 30, 1 -> truthy
9, 30, 1 -> falsey
2, 1, 3 -> truthy
100, 100, 50 -> truthy
60, 60, 20 -> falsey
10, 1, 1 -> falsey
10, 50, 2 -> truthy
11, 50, 2 -> truthy
12, 50, 2 -> truthy
13, 50, 2 -> truthy
14, 50, 2 -> truthy
15, 50, 2 -> truthy
16, 50, 2 -> falsey
17, 50, 2 -> falsey
18, 50, 2 -> falsey
100, 451, 10 -> truthy

संदर्भ पायथन 3 कार्यान्वयन जो एक दृश्य भी बनाता है: इसे ऑनलाइन आज़माएं!

यह , इसलिए बाइट्स जीत में सबसे छोटा जवाब है।



8
ओह ... यह एक पुलिस और लुटेरों की चुनौती नहीं है; यह अधिक समझ में आता है।
मैजिक ऑक्टोपस Urn

क्या इनपुट दिए गए प्रारूप में होने की गारंटी है, या हम जो भी प्रारूप चाहते हैं उसमें इनपुट ले सकते हैं (जैसे कि robber acceleration, cop speed, robber positionइसके बजाय)?
तेहपर्स

@TePPers जो कुछ भी आप चाहते हैं (प्रत्येक बार संगत करें), लेकिन अगर आप कुछ अलग कर रहे हैं तो अपने उत्तर में ऐसा कहें
स्टीफन

2
टेस्ट केस अनुरोध: 100, 451, 10. (जवाब सभी परिणाम पर सहमत नहीं हैं)।
नील

जवाबों:



16

पायथन 3 , 29 बाइट्स

lambda s,p,a:(a-2*s)**2<8*a*p

इसे ऑनलाइन आज़माएं!

व्याख्या

समय पर पुलिस की स्थिति tहै st

समय पर डाकू की स्थिति tहै a(t)(t+1)/2 + p

सिपाही से डाकू तक हस्ताक्षरित दूरी है (a/2)t^2 + (a/2-s)t + p

यह कभी शून्य तक नहीं पहुंचता है यदि विभेदक नकारात्मक है, विवेकशील होने के नाते (a/2 - s)^2 - 4(a/2)(p) = [(a-2s)^2-8ap]/4, जिस पर एक ही संकेत है (a-2s)^2-8ap


इसे ऑनलाइन आज़माएं! - 9-बाइट्स के लिए 05AB1E के लिए बेशर्म पोर्ट (आप इसे ले सकते हैं, जैसा कि मैं भौतिकी के साथ बुरा हूं, और शायद सिर्फ स्पष्टीकरण नहीं कर सकता)।
मैजिक ऑक्टोपस Urn

1
क्या यह "100, 451, 10 -> सत्य" परीक्षण के मामले में विफल नहीं है?
मार्क एस।

क्या मुझे कुछ याद आ रहा है, या हमें यह भी देखना चाहिए कि क्या द्विघात समीकरण के समाधानों के बीच पूर्णांक है (a/2)t^2 + (a/2-s)t + p = 0 -> 10t^2 - 50t + 61 = 0? उदाहरण के लिए, 60, 61, 20 के लिए डाकू आसानी से दूर हो जाता है (समीकरण समाधान: 2.1 और 2.9 दोनों 2 और 3 के बीच)।
mackoo13

5

जाप , 13 बाइट्स

²/W-V-U<o0W x

इसे ऑनलाइन टेस्ट करें!

व्याख्या

U, Vऔर Wनिहितार्थ इनपुट हैं। सबसे पहले, Uo0Wहम सीमा बनाते हैं [0, W, 2 * W, ...] जब तक यह नहीं पहुंचता Uxफिर यह गाया जाता है, जो देता है कि पुलिस की गति तक पहुंचने से पहले डाकू कितनी दूर तक यात्रा करता है। हम इसे आर कहेंगे ।

अब, इस समय में पुलिस कितनी दूर यात्रा करती है? हम इसे यू * (यू // डब्ल्यू - 1) का उपयोग करके गणना कर सकते हैं , जिसे (यू * यू) // डब्ल्यू - यू के लिए फिर से व्यवस्थित किया जा सकता है । हम इसे सी कहेंगे ।

अब अंतिम चरण के लिए: क्या डाकू दूर हो जाता है? हम सभी को यहाँ की जाँच करने की आवश्यकता है अगर c <r + V , या पुनर्व्यवस्थित, c - V <r


5

मूल रूप से , 61 बाइट्स

$:7(U1R3U1F3D2*1-1/1)6+7$-77*6$(-77777777D2F1U3R1U3!0{<0%6&})

इसे ऑनलाइन आज़माएं! इस TIO में काम करने के लिए, आप बदलना पड़ सकता है &के साथ &1दुभाषिया में बग के कारण।

यह लीक नन के जवाब का एक बेशर्म पोर्ट है । इनपुट फॉर्म में है a s p, जहां aडाकू का त्वरण है, sपुलिस की गति है, और pडाकू की स्थिति है।

यदि त्वरण बहुत अधिक है, तो यह विफल हो जाएगा। मुझे नहीं पता कि यह कार्यक्रम कितना उच्च गति का समर्थन करेगा, लेकिन मुझे पता है कि यह 1260 से अधिक नहीं है । सीमित कारक यह है कि यह क्यूब में त्वरण को संग्रहीत करता है और जांचता है कि क्या क्यूब को केवल चेक करके हल किया जाता है यदि शीर्ष चेहरे का योग 0 (एक अपूर्ण चेक) है। यह त्वरण = 50 के लिए काम करता है, लेकिन मैंने यह देखने के लिए परीक्षण नहीं किया है कि यह कितना ऊंचा हो सकता है।

यह काम किस प्रकार करता है

$:7(U1R3U1F3D2*1-1/1)6
$:7                             Store the first number in the notepad
   (                )6          Loop until notepad is 0
    U1R3U1F3D2                  Rotate the cube a certain way
              *1-1/1            Subtract 1 from the notepad

+7$-77*6                
+7                              Add first input to the notepad
  $-77                          Subtract second input from the notepad twice
      *6                        Multiply the notepad by itself (square it)

$(-77777777D2F1U3R1U3!0{<0%6&})
$                               Get next input
 (                            ) Loop indefinitely
  -77777777                     Subtract third input 8 times
           D2F1U3R1U3           "Unrotate" the cube
                     !0{     }  If the top face is 0
                        <0        Check if notepad < 0, store in notepad
                          %6      Output notepad as number
                            &     End the program

1
6में %6और *6हटाया जा सकता है के रूप में वे अब परोक्ष कहा जा सकता है।
एमडी एक्सएफ


4

पाइके , 14 बाइट्स

पोर्ट अमानुमान के पायथन उत्तर1सच्चाई के लिए और झूठा के लिए रिटर्न 0

hQee-XQ1@Qe*}<

यहाँ कोशिश करो!


व्याख्या

hQee-XQ1@Qe*}< - Full program with implicit input added in the beginning (which automatically splits the components)

h              - First input
 Qee           - Last Input halved (through integer division)
    -          - Subtact the above
     X         - Square.
             < - Is smaller than?
      Q1@      - The second input
         Qe*   - Multiplied by the last input
            }  - Doubled

पाइके , 15 बाइट्स

मेरा पहला पहला Pyke जवाब! पोर्ट ऑफ़ माय पायथ सॉल्यूशन , जो लीक के पाइथन को प्रस्तुत करने से प्रेरित है । 1सच्चाई के लिए और झूठा के लिए रिटर्न 0

eQh}-XQe8*Q1@*<

यहाँ कोशिश करो!


व्याख्या

eQh}-XQe8*Q1@*< - Full program with implicit input added in the beginning (which automatically splits the components)

e               - End; last input in this case
 Qh             - The first input
   }            - Double
    -           - Subtact the above
     X          - Square.
              < - Is less than?
      Qe        - Last Input
        8*      - Times 8 
             *  - Multiplied by
          Q1@   - The second input.


2

रूबी , 29 27 25 बाइट्स

->c,p,a{(a-c-c)**2<8*p*a}

इसे ऑनलाइन आज़माएं!

29 से 27 तक दोनों तरफ से गुणा करने के विचार से मिला 4. (लीक नॉन का अजगर जवाब)

लैंबडा मापदंडों के आसपास के परिमाणों को हटाकर 27 से 25 तक प्राप्त किया गया (धन्यवाद पूरी तरह से)


2
PPCG में आपका स्वागत है! आप से अपने कार्य का नाम बदलकर गोल्फ अपने जवाब एक छोटा सा कर सकते हैं hitकरने के लिए hया इसी तरह की। आप कुछ बाइट्स को विधि से बदलकर एक बोट में सहेजने में सक्षम हो सकते हैं, जैसे:->c,p,a{(c-a*0.5)**2<2*p*a}
Conor O'Brien

1
आपको collisionअपने TIO लिंक को सही विधि के नाम के साथ बदलना होगा ।
लीकी नन

Pssst, उनके उपयोगकर्ता नाम को देखें। : पी
बशर्ते

1
मुझे पूरा यकीन है कि आपको चारों ओर कोष्ठक की आवश्यकता नहीं है c,p,a
21

2

सी # (.NET कोर) , 33 बाइट्स

(v,p,a)=>v/a*v<p+v/a*(1+v/a)*.5*a

इसे ऑनलाइन आज़माएं!

मुझे ऐसा लगता है कि यह एक के बाद एक बंद है, लेकिन यह सभी परीक्षण मामलों के लिए गुजरता है इसलिए यह संभव है कि बस कोई भी परीक्षण मामले नहीं हैं जहां पुलिस ने एक टिक के लिए डाकू को पछाड़ दिया, या यह सिर्फ मेरे आरक्षण के बावजूद काम कर सकता है।


1

पायथन 2 , 31 30 29 बाइट्स

-1 बाइट मिस्टर एक्सकोडर की बदौलत।

रूबी जवाब के एक बंदरगाह के रूप में शुरू किया ।

lambda c,p,a:(c-a/2)**2<2*p*a

इसे ऑनलाइन आज़माएं!


1
.5के बजाय 0.5> _>
श्री Xcoder

Haha, मैंने सोचा था कि यह पोर्ट के लिए बस इतना ही होगा। XD धन्यवाद!
21 अक्‍टूबर को पूरी तरह से अमानवीय

a/2पूर्णांक विभाजन का उपयोग करता है, क्या यह गलत हो सकता है?
itdoesntwork 21

यह पूर्णांक विभाजन का उपयोग करता है। जबकि मैंने कोई गणित काम नहीं किया है (ईमानदार होने के लिए, मुझे यकीन नहीं है कि मैं कर सकता था), यह सभी परीक्षण मामलों के लिए काम करता है।
21 अक्टूबर को पूरी तरह से अमानवीय

1

स्विफ्ट 3 , 55 बाइट्स

ध्यान दें कि मैंने चर घोषित किया tक्योंकि अभिव्यक्ति उचित समय में हल करने के लिए बहुत जटिल होगी अन्यथा (स्विफ्ट की गलती!)।

func f(a:Int,b:Int,c:Int){let t=c-2*a;print(t*t<8*c*b)}

परीक्षण सूट।

या 55 बाइट्स , सटीक क्लोजर समतुल्य (मुझे पिछले भाग की आवश्यकता है क्योंकि यह एक जटिल निर्माण है):

{let t=$2-2*$0;return t*t<8*$2*$1}as(Int,Int,Int)->Bool

परीक्षण सूट।

स्विफ्ट 3 , 57 बाइट्स

func f(a:[Int]){let t=a[2]-2*a[0];print(t*t<8*a[2]*a[1])}

परीक्षण सूट।


1

पायथन 2 , 30 बाइट्स

lambda c,p,a:c/a*(c-a+c%a)/2<p

इसे ऑनलाइन आज़माएं! पुलिस ने c/aलुटेरे को पकड़ने के लिए टिक किया है, जिसके बाद उसने पुलिस को तेज कर दिया है। पहले टिक c-aपर लुटेरे पर पुलिस वाले को टिक करते हैं जबकि आखिरी टिक पर वह केवल हासिल करता है c%a। इस प्रकार कुल जो पुलिस हासिल कर सकती है वह है टिक की संख्या और प्रति टिक की औसत दूरी। यह केवल उस शुरुआती लीड की तुलना में है जो डाकू के पास है।


1

टीआई बेसिक (TI-83/84 श्रृंखला), 18 बाइट्स

Prompt C,R,A
(A-2C)²<8RA

फिर भी itdoesntwork के प्रभावशाली रूबी समाधान का एक और बंदरगाह ।

क्रियान्वयन

इनपुट आदेश पुलिस की गति, डाकू की स्थिति, डाकू त्वरण है।

C=?7
R=?30
A=?1
               1

1

रेटिना , 79 बाइट्स

\d+
$*
$
;
{`(1+);
$1;$1
,(1+;(1+))
$2,$1
1`(1+),\1
$1,
.*,,.*

^(1+),.*;\1.*
1

इसे ऑनलाइन आज़माएं! स्पष्टीकरण:

\d+
$*

इनपुट को unary में बदलें।

$
;

डाकू की गति के लिए जगह बनाओ।

{`(1+);
$1;$1

प्रत्येक पास पर डाकू को तेज करें।

,(1+;(1+))
$2,$1

डाकू को पुलिस से दूर ले जाएँ।

1`(1+),\1
$1,

पुलिस वाले को लुटेरा की तरफ घुमाया।

.*,,.*

क्या पुलिस वाले ने लुटेरे को पकड़ लिया है?

^(1+),.*;\1.*
1

क्या डाकू पुलिस वाले को बाहर कर देता है?


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.