একটি সংঘর্ষের পূর্বাভাস: ডাকাত কি পালিয়ে যাবে?


20

একটি রাস্তাটিকে একটি নম্বর লাইন হিসাবে মনে করুন, শুরু হয়ে 0অনির্দিষ্টকালের জন্য:

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

রাস্তায় দুটি গাড়ি রয়েছে: Cএবং RCসেই পুলিশ যিনি ধরার চেষ্টা করছেন R, ডাকাত। Cশুরু হয় 0এবং Rরাস্তার কোথাও শুরু হয়:

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

পুলিশ ইতিমধ্যে চলছে - সে ডাকাতকে তাড়া করছে। তার অবিরাম গতি আছে। ডাকাত সবেমাত্র তার গাড়িতে pedুকল। সে ত্বরান্বিত হচ্ছে। প্রতিটি টিক, ডাকাতটির গতি তার ত্বরণ দ্বারা বৃদ্ধি পায়।

বলুন পুলিশের গতি 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
ওহহহ ... এটি কোনও পুলিশ এবং ডাকাতদের চ্যালেঞ্জ নয়; যে আরও বোধগম্য।
ম্যাজিক অক্টোপাস আরন

ইনপুটটি কি প্রদত্ত বিন্যাসে থাকার নিশ্চয়তা রয়েছে, বা আমরা যে কোনও ফর্ম্যাটটিতে ( robber acceleration, cop speed, robber positionপরিবর্তে পছন্দ মতো ) ইনপুট নিতে পারি ?
তেহপার্স

@ টিহ্পার্স আপনি যা যা চান (প্রতিটি সময় সামঞ্জস্যপূর্ণ), তবে আপনি যদি কিছু আলাদা করেন তবে আপনার উত্তরে বলুন
স্টিফেন

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 এ লজ্জাহীন বন্দর (আপনি এটি নিতে পারেন, কারণ আমি পদার্থবিদ্যার সাথে খারাপ আছি, এবং সম্ভবত একটি সঠিক ব্যাখ্যা করতে পারিনি)।
ম্যাজিক অক্টোপাস আরন

1
এটি "100, 451, 10 -> সত্যবাদী" পরীক্ষার ক্ষেত্রে ব্যর্থ হয় না?
মার্ক এস।

আমি কি কিছু মিস করছি, বা চতুর্ভুজ সমীকরণের সমাধানগুলির মধ্যে কোনও পূর্ণসংখ্যা আছে কিনা তাও আমাদের পরীক্ষা করা উচিত (a/2)t^2 + (a/2-s)t + p = 0 -> 10t^2 - 50t + 61 = 0? উদাহরণস্বরূপ, 60, 61, 20 এর জন্য ডাকাত সহজেই চলে যায় (সমীকরণের সমাধান: ২.১ এবং ২.৯ উভয়ই ২ থেকে ৩ এর মধ্যে রয়েছে)।
mackoo13

5

জাপট , 13 বাইট

²/W-V-U<o0W x

এটি অনলাইন পরীক্ষা!

ব্যাখ্যা

U, Vএবং অন্তর্ভুক্ত Wইনপুটগুলি। প্রথমে, Uo0Wআমরা এটির সাথে পৌঁছানো অবধি [0, W, 2 * W, ...] সীমাটি তৈরি করি Uxতারপরে এটির যোগফল, যা ডাকাত গতিতে পৌঁছানোর আগে ডাকাত কতদূর ভ্রমণ করে travel আমরা এই আর কল করব ।

এখন, এই সময়ের মধ্যে পুলিশ কতদূর ভ্রমণ করবে? আমরা ইউ * (ইউ // ডাব্লু - 1) ব্যবহার করে এটি গণনা করতে পারি , যা (ইউ * ইউ) // ডব্লিউ - ইউ এ পুনরায় সাজানো যেতে পারে । আমরা এই সি কল করব ।

এখন চূড়ান্ত পদক্ষেপের জন্য: ডাকাত কি পালাতে পারে? আমাদের এখানে যা করতে হবে তা হ'ল সি <আর + ভি , বা পুনরায় সাজানো, সি - ভি <আরআর পরীক্ষা করা উচিত


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 বাইট

সম্পূর্ণরূপে পাইথন উত্তর বন্দর । রিটার্নস 1truthy এবং 0falsy জন্য।

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 বাইট

আমার প্রথম পাইকের উত্তর! লাইটের পাইথন জমা দিয়ে অনুপ্রাণিত হওয়া আমার পাইথ সোলিউশনের পোর্ট । রিটার্নস 1truthy এবং 0falsy জন্য।

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}

এটি অনলাইন চেষ্টা করুন!

উভয় পক্ষকে 4 দ্বারা গুণমান করার ধারণাটি চুরি করে 29 থেকে 27 পর্যন্ত পেয়েছেন (লিকি নুনের অজগর উত্তর)

ল্যাম্বদা প্যারামিটারের চারপাশে পেরেনগুলি সরিয়ে 27 থেকে 25 পর্যন্ত পেয়েছেন (ধন্যবাদ পুরোপুরি মানুষ)


2
পিপিসিজিতে আপনাকে স্বাগতম! আপনি থেকে আপনার ফাংশন পুনঃনামকরনের দ্বারা গলফ আপনার উত্তর একটি সামান্য বিট করতে পারেন hitথেকে hবা অনুরূপ। আপনি কোনও পদ্ধতি থেকে প্রোকের পরিবর্তে কিছু বাইট সংরক্ষণ করতে সক্ষম হতে পারেন:->c,p,a{(c-a*0.5)**2<2*p*a}
কনর ও'ব্রায়ান

1
collisionআপনার টিআইও লিঙ্কটিও সঠিক পদ্ধতির নামের সাথে প্রতিস্থাপন করতে হবে ।
ফাঁস নুন

পিএসএসটি, তাদের ব্যবহারকারীর নামটি দেখুন। : পি
সম্পূর্ণরূপে

1
আমি নিশ্চিত যে আপনার চারপাশে প্রথম বন্ধনী প্রয়োজন নেই c,p,a
সম্পূর্ণরূপে

2

সি # (.নেট কোর) , 33 বাইট

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

এটি অনলাইন চেষ্টা করুন!

আমি মনে করি এটি কোথাও একের দ্বারা বন্ধ হয়ে গেছে, তবে এটি সমস্ত পরীক্ষার ক্ষেত্রে পাস করে তাই এটি সম্ভবত সম্ভব হয় যে কোনও টেস্টের ঘটনা ঘটেনি যেখানে পুলিশ একটি ডাকের জন্য ডাকাতকে ছাপিয়ে যায়, বা এটি আমার রিজার্ভেশন সত্ত্বেও এটি কাজ করতে পারে।


1

পাইথন 2 , 31 30 29 বাইট

-১ বাইট মিঃ এক্সকোডারকে ধন্যবাদ।

রুবি উত্তরের একটি বন্দর হিসাবে শুরু হয়েছিল ।

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

এটি অনলাইন চেষ্টা করুন!


1
.50.5> _> এর পরিবর্তে
মিঃ এক্সকোডার

হাহা, আমি ভেবেছিলাম এটি পোর্ট করার মতো হবে। এক্সডি ধন্যবাদ!
সম্পূর্ণরূপে

a/2পূর্ণসংখ্যা বিভাগ ব্যবহার করে, এটি কি ভুল হতে পারে?
itdoesntwork

এটি পূর্ণসংখ্যা বিভাগ ব্যবহার করে। যদিও আমি কোনও গণিতের কাজ করিনি (সত্য বলতে, আমি নিশ্চিত যে আমি পারতাম না), এটি সমস্ত পরীক্ষার ক্ষেত্রে কাজ করে।
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

টিআই বেসিক (টিআই -83 / 84 সিরিজ), 18 বাইট

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

তবুও এটিডোসেন্টওয়ার্কের প্রভাবশালী রুবি সমাধানের আরেকটি বন্দর ।

ফাঁসি

ইনপুট অর্ডার হ'ল কপ স্পিড, ডাকাত অবস্থান, ডাকাত ত্বরণ।

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+
$*

ইনপুটটিকে আনারিতে রূপান্তর করুন।

$
;

ডাকাতটির গতির জন্য জায়গা তৈরি করুন।

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

প্রতিটি পাসে ডাকাতকে ত্বরান্বিত করুন।

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

ডাকাতকে পুলিশ থেকে দূরে সরিয়ে দিন।

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

পুলিশকে ডাকাতটির দিকে নিয়ে যান।

.*,,.*

পুলিশ কি ডাকাতকে ধরেছে?

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

ডাকাত কি পুলিশকে দ্রুত গতিতে পারে?


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.