চেনাশোনাগুলি কি ওভারল্যাপ হয়?


21

কেন্দ্রগুলির স্থানাঙ্ক এবং ২ টি চেনাশোনাগুলির রেডিয়ি দেওয়া, তারা ওভারল্যাপ না করে বা না করে তার সত্যবাদী মান আউটপুট দেয়।

ইনপুট

  • ইনপুটটি STDIN বা সমতুল্য, ফাংশন আর্গুমেন্টের মাধ্যমে নেওয়া যেতে পারে তবে ভেরিয়েবল হিসাবে নয়। আপনি এগুলি একটি একক ভেরিয়েবল (তালিকা, স্ট্রিং ইত্যাদি) বা একাধিক ইনপুট / আর্গুমেন্ট হিসাবে নিতে পারেন, যেভাবেই চান।

  • ইনপুটটি ছয়টি ফ্লোট হবে। এই ফ্লোটগুলি 3 দশমিক স্থান পর্যন্ত হবে। স্থানাঙ্কগুলি ইতিবাচক বা নেতিবাচক হতে পারে। রাশিটি ইতিবাচক হবে।

আউটপুট

  • আউটপুট STDOUT বা ফাংশন রিটার্নের মাধ্যমে হতে পারে।

  • প্রোগ্রামটির অবশ্যই 2 টি পৃথক আউটপুট থাকতে হবে - একটি সত্য মানের (বৃত্তগুলি ওভারল্যাপ করে) এবং একটিতে একটি ফলস আউটপুট (তারা ওভারল্যাপ করে না)।

পরীক্ষার মামলা

( [(x1, y1, r1), (x2, y2, r2)]পরীক্ষার ক্ষেত্রে টিপলগুলির তালিকা হিসাবে ইনপুট দেওয়া হয় ; আপনি যে কোনও বিন্যাসে ইনপুট নিতে পারেন)

সত্য

[(5.86, 3.92, 1.670), (11.8, 2.98, 4.571)]
[(8.26, -2.72, 2.488), (4.59, -2.97, 1.345)]
[(9.32, -7.77, 2.8), (6.21, -8.51, 0.4)]

মিথ্যা

[(4.59, -2.97, 1.345), (11.8, 2.98, 4.571)]
[(9.32, -7.77, 2.8), (4.59, -2.97, 1.345)]
[(5.86, 3.92, 1.670), (6.21, -8.51, 0.4)]

এটি কোড গল্ফ, বাইট জয়ের সংক্ষিপ্ত উত্তর answer


4
দুটি চেনাশোনা বাহ্যিকভাবে স্পর্শ করা থাকলে আমাদের কী ফিরে আসতে হবে?
জংহওয়ান মিন

6
"স্পর্শকারী তবে ওভারল্যাপিং নয়" এর প্রযুক্তিগত শব্দটি "স্পর্শকাতর" এবং অন্য কোথাও না থাকলে এটি জ্যামিতির একটি বিষয়।
ডিসেমেক

2
ভাসা ভাসা নেওয়া বেশ কড়া প্রয়োজন বলে মনে হচ্ছে। আপনি কি আরও সাধারণ প্রতিনিধিত্ব থেকে শিথিল করতে পারেন? আমি ব্রেইন-ফ্লাক এ সমাধান করতে চাই, তবে আইইইই ফ্লোটগুলি বাস্তবায়নের জন্য আমি সময় নেওয়ার সম্ভাবনা নেই, এবং আমি যদি এটি করি তবে এটি বাইট কাউন্টের 90% হবে তাই আমি কেবল একটি ফ্লোট বাস্তবায়ন গল্ফ করব।
গম উইজার্ড

4
আমি আরও উল্লেখ করতে চাই যে অনেক ক্ষেত্রে "তিন দশমিক স্থান" পর্যন্ত ভাসমানগুলি সঠিক নয়। আপনি ঠিক কী উত্তরগুলি হ্যান্ডেল করতে চান তা নিশ্চিত না, তবে এটি এখনই কিছুটা বিভ্রান্তিকর।
গম উইজার্ড

2
আমি মনে করি আপনার কীভাবে ভাসমান কাজ করে তার একটি মৌলিক ভুল ধারণা থাকতে পারে have এগুলি স্থির আকারের কারণ, মানগুলি বড় হওয়ার সাথে সাথে নির্ভুলতা কম হয়। এখানে একটি পয়েন্ট রয়েছে যার বাইরে একটি ফ্লোট 3 দশমিক জায়গার মধ্যে সঠিকভাবে সমস্ত মান উপস্থাপন করতে পারে না। এছাড়াও, একটি অপ্রয়োজনীয় সীমাবদ্ধতা অপসারণ করার জন্য একটি চ্যালেঞ্জ সম্পাদনা নিরুৎসাহিত করা হয় না।
মেগো

উত্তর:


18

জেলি , 5 বাইট

IA<S}

প্রথম যুক্তি হিসাবে দুটি জটিল সংখ্যা (কেন্দ্র) এবং দ্বিতীয় আর্গুমেন্ট হিসাবে দুটি আসল সংখ্যা (রেডিও) নেয় T

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

কিভাবে এটা কাজ করে

IA<S}  Main link.
       Left argument:  [x1 + iy1, x2 + iy2]
       Right argument: [r1, r2]

I      Increments; yield (x2 - x1) + i(y2 - y1).
 A     Absolute value; yield √((x2 - x1)² + (y2 - y1)²).
   S}  Take the sum of the right argument, yielding r1 + r2.
  <    Compare the results.

বাজে, আমি স্থানাঙ্কের জন্য জটিল সংখ্যা ব্যবহার করতে ভুলে গিয়েছিলাম। ভাল একটা! : ডি
হাইপারনিউটারিনো

আগ্রহের বাইরে কি এখানে ফলাফলটি Aসারি ভেক্টর "কেন্দ্রগুলি" র আদর্শ হিসাবে বিবেচনা করা হবে? ( ÆḊনিজেই জটিল কন্টেন্ট সঙ্গে ত্রুটি।)
জোনাথন অ্যালান

1
@ জোনাথান অ্যালান হ্যাঁ, Aকেন্দ্রগুলির দূরত্বগুলি তাদের পার্থক ভেক্টরের আদর্শ হিসাবে গণনা করে।
ডেনিস

11

জাভাস্ক্রিপ্ট (ES6), 38 বাইট

X1 , y1 , r1 , x2 , y2 , r2 হিসাবে 6 স্বতন্ত্র ভেরিয়েবল হিসাবে ইনপুট নেয় ।

(x,y,r,X,Y,R)=>Math.hypot(x-X,y-Y)<r+R

পরীক্ষার মামলা


যার আগে ম্যাথ হিপপট মনে হয় না তার জন্য ।
পিউফেরেরেট


@ V.Courtois আপনি পরামিতিগুলি যেভাবে পাস করেছেন তা পদ্ধতি ঘোষণার সাথে মেলে না। এটা হওয়া উচিত a:Double,x:Double,b:Double,y:Double,r:Double,q:Double
আর্নল্ড

1
@ আর্নল্ড ওহ ~ ধন্যবাদ! আমার কি আলাদা করে পোস্ট করা উচিত?
ভি। কুর্তোইস

@ ভি.কোর্তোইস শিওর এটার জন্য যাও!
আর্নৌল্ড


7

এমএটিএল , 5 বাইট

ZPis<

ইনপুট ফর্ম্যাটটি হ'ল:

[x1, y1]
[x2, y2]
[r1, r2]

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন

কিভাবে এটা কাজ করে

ZP   % Take two vectors as input. Push their Euclidean distance
i    % Input the vector of radii
s    % Sum of vector
<    % Less than?

এটি আমার কিনা তা নিশ্চিত নয় তবে আমি যখন আপনার ট্রায়াল লিঙ্কটি ব্যবহার করি এবং রান টিপতে পারি তখন 'ত্রুটি সার্ভারের প্রতিক্রিয়াটি ডিকোড করা যায়নি' - এছাড়াও এটি নিশ্চিত কিনা তাও নিশ্চিত নয় তবে জটিল সংখ্যাগুলি ব্যবহার করে আপনি (আব) সম্পর্কে কি ভেবেছিলেন? জেলি উত্তরে?
ডেনিস জহেরুদ্দিন

@ ডেনিসজাহেরউদ্দিন আরে, তোমাকে এখানে আবার দেখতে পেয়ে ভালো লাগল! (1) দোষী সাঁকো, সম্ভবত। আপনি কি হার্ড রিফ্রেশ চেষ্টা করেছেন? (২) আমি করেছি, তবে আমি মনে করি এটিও 5বাইট ( -|পরিবর্তে ZP)
লুইস মেন্ডো

আমি মনে করি এটি ফায়ারওয়াল। এখন আমি ভাবছি যে ইনপুট ফর্ম্যাটটির -r2পরিবর্তে এর মতো কিছু দিয়ে r2সহায়তা করবে কিনা কারণ তখন আপনার 2 পার্থক্য এবং সংযোজনের পরিবর্তে তিনটি পার্থক্যের প্রয়োজন হবে ... আমি আরও গভীরভাবে আঁকতে যাওয়ার আগে আরও ভালভাবে চালাতে পারি!
ডেনিস জাহেরউদ্দিন

আমি মনে করি না যে একটি ইনপুট উপেক্ষা করা ইনপুট ফর্ম্যাট হিসাবে গ্রহণযোগ্য। ট্রাই ইট অনলাইন পরিষেবাটিতে যদি আপনার কোনও সমস্যা দেখা যায় তবে আপনি কি দয়া করে এখানে রিপোর্ট করবেন ?
লুইস মেন্ডো

6

আর , 39 বাইট

function(k,r)dist(matrix(k,2,2))<sum(r)

ইনপুট নেয় k=c(x1,x2,y1,y2)এবং r=c(r1,r2); FALSEস্পর্শকাতর বৃত্তের জন্য ফিরে আসে ।

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

27 বাইট:

function(m,r)dist(m)<sum(r)

সারি হিসাবে প্রদত্ত বৃত্ত কেন্দ্র এবং রেডির ভেক্টর হিসাবে ম্যাট্রিক্স হিসাবে ইনপুট নেয়।

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


-2 বাইটfunction(k,r)dist(matrix(k,2))<sum(r)
djhurio

কি হবে dist(matrix(scan(),2))<sum(scan())?
djhurio

6

পাইথন , 40 বাইট

lambda x,y,r,X,Y,R:abs(x-X+(y-Y)*1j)<r+R

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

দুটি কেন্দ্রের মধ্যকার দূরত্ব গণনা করতে পাইথনের জটিল গাণিতিক ব্যবহার করে। আমি ধরে নিচ্ছি আমরা জটিল সংখ্যা হিসাবে সরাসরি ইনপুট পয়েন্ট নিতে পারি না, তাই কোড তাদের মত প্রকাশ করে x+y*1j




5

পাইথন 3 , 45 বাইট

lambda a,b,c,d,e,f:(a-d)**2+(b-e)**2<(c+f)**2

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

-8 বাইট ধন্যবাদ নীল / স্টেপ হেনকে ধন্যবাদ


এই কোডটি পাইথন 2 তেও কাজ করে।
মাইক্রোথপিক

@ মাইস্টেপিক কুল, ধন্যবাদ এটি টিআইও ফর্ম্যাটিংয়ের উপায়।
হাইপারনিউটারিনো

4

এপিএল (ডায়ালগ) , 10 বাইট

দুটি জটিল সংখ্যার তালিকা হিসাবে বৃত্ত কেন্দ্রগুলির জন্য অনুরোধ জানানো হয়, তারপরে দুটি সংখ্যার তালিকা হিসাবে রেডিয়ির জন্য

(+/⎕)>|-/

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

(+/⎕) []] রেডির যোগফল

> অপেক্ষা বৃহত্তর

| এর আকার

-/⎕ কেন্দ্রগুলির মধ্যে পার্থক্য


3

গণিত, 16 বাইট

Norm[#-#2]<+##3&

ইনপুট: [{x1, y1}, {x2, y2}, r1, r2]


গণিতের ক RegionIntersection বিল্টিন রয়েছে তবে এটি একা 18 বাইট দীর্ঘ ...

অন্তর্নির্মিত সংস্করণ:

RegionIntersection@##==EmptyRegion@2&

2 টি Diskঅবজেক্ট নেয় । [Disk[{x1, y1}, r1], Disk[{x2, y2}, r2]]



3

জেলি , 12 বাইট

I²+⁴I²¤<⁵S²¤

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

-2 বাইটস ডেনিসকে ধন্যবাদ


ạ/²এটি একই বাইট দিয়ে নতুন লিঙ্ক তৈরি করবে না ?
২১ শে

নিবন্ধন করুন
হাইপারনিউটারিনো

কিছু মনে করবেন না, আমি করছেন 14 বাইট পেয়েছিলাম এই
caird coinheringaahing

আপনি Iসম্পূর্ণ পার্থক্য দ্বারা হ্রাস পরিবর্তে ব্যবহার করতে পারেন ।
ডেনিস

@ ডেনিস ওহ ধন্যবাদ
হাইপারনিউটারিনো


3

জাভা 8, 41 38 বাইট

(x,y,r,X,Y,R)->Math.hypot(x-X,y-Y)<r+R

এখানে চেষ্টা করুন।

স্পষ্টতই, জাভাতেও রয়েছে Math.hypotযা 3 বাইট সংক্ষিপ্ত।

সম্পাদনা: ঠিক এখন বুঝতে পেরেছি যে উত্তরটি এখন ঠিক অলিভিয়েরগ্রাগোয়ারের জাভা 8 উত্তরের মতো , সুতরাং যদি আপনি 38-বাইট উত্তর পছন্দ করেন তবে দয়া করে আমার পরিবর্তে তাকে উত্সাহিত করুন

পুরানো উত্তর (41 বাইট) :

(x,y,r,X,Y,R)->(x-=X)*x+(y-=Y)*y<(r+=R)*r

এখানে চেষ্টা করুন।


1
উহু! সুতরাং কেন আমি আজ 3 টি আপগেট পেয়েছি, কিন্তু 0 যখন চ্যালেঞ্জ পোস্ট হয়েছিল? ^^ আমি ভাবছিলাম যে এই অদ্ভুত আচরণটি কী কারণে ট্রিগার করেছে;) যেহেতু আমার উত্তরটি আমার পছন্দ হয়েছে এবং আপনিও একই পোস্ট করেছেন, আপনিও একটি +1 পাবেন! : পি
অলিভিয়ার গ্রাগোয়ার



2

ট্যাক্সি , 1582 বাইট

Go to Post Office:w 1 l 1 r 1 l.Pickup a passenger going to The Babelfishery.Pickup a passenger going to Tom's Trims.Pickup a passenger going to Tom's Trims.Go to Tom's Trims:n.[a]Go to Post Office:s.Pickup a passenger going to The Babelfishery.Go to The Babelfishery:s 1 l 1 r.Pickup a passenger going to What's The Difference.Pickup a passenger going to What's The Difference.Go to What's The Difference:n 5 l.Pickup a passenger going to Cyclone.Go to Cyclone:e 1 r.Pickup a passenger going to Multiplication Station.Pickup a passenger going to Multiplication Station.Go to Multiplication Station:s 1 l 2 r 4 l.Pickup a passenger going to Addition Alley.Go to Tom's Trims:s 1 r 3 r.Pickup a passenger going to The Babelfishery.Switch to plan "b" if no one is waiting.Switch to plan "a".[b]Go to Addition Alley:n 1 r 1 l 3 l 1 l.Pickup a passenger going to Magic Eight.Go to Post Office:n 1 r 1 r 3 r 1 l.Pickup a passenger going to The Babelfishery.Go to The Babelfishery:s 1 l 1 r.Pickup a passenger going to Addition Alley.Pickup a passenger going to Addition Alley.Go to Addition Alley:n 5 l 1 l.Pickup a passenger going to Cyclone.Go to Cyclone:n 1 l 1 l.Pickup a passenger going to Multiplication Station.Pickup a passenger going to Multiplication Station.Go to Multiplication Station:s 1 l 2 r 4 l.Pickup a passenger going to Magic Eight.Go to Magic Eight:s 1 r.Switch to plan "c" if no one is waiting.'1' is waiting at Writer's Depot.[c]'0' is waiting at Writer's Depot.Go to Writer's Depot:w 1 l 2 l.Pickup a passenger going to Post Office.Go to Post Office:n 1 r 2 r 1 l.

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

1ওভারল্যাপিং চেনাশোনাগুলির আউটপুট । অ-ওভারল্যাপিং চেনাশোনাগুলির জন্য
ফলাফল 0(স্পর্শকাতর চেনাশোনা সহ)।

অবরুদ্ধ / বিন্যাসিত:

Go to Post Office: west 1st left 1st right 1st left.
Pickup a passenger going to The Babelfishery.
Pickup a passenger going to Tom's Trims.
Pickup a passenger going to Tom's Trims.
Go to Tom's Trims: north.
[a]
Go to Post Office: south.
Pickup a passenger going to The Babelfishery.
Go to The Babelfishery: south 1st left 1st right.
Pickup a passenger going to What's The Difference.
Pickup a passenger going to What's The Difference.
Go to What's The Difference: north 5th left.
Pickup a passenger going to Cyclone.
Go to Cyclone: east 1st right.
Pickup a passenger going to Multiplication Station.
Pickup a passenger going to Multiplication Station.
Go to Multiplication Station: south 1st left 2nd right 4th left.
Pickup a passenger going to Addition Alley.
Go to Tom's Trims: south 1st right 3rd right.
Pickup a passenger going to The Babelfishery.
Switch to plan "b" if no one is waiting.
Switch to plan "a".
[b]
Go to Addition Alley: north 1st right 1st left 3rd left 1st left.
Pickup a passenger going to Magic Eight.
Go to Post Office: north 1st right 1st right 3rd right 1st left.
Pickup a passenger going to The Babelfishery.
Go to The Babelfishery: south 1st left 1st right.
Pickup a passenger going to Addition Alley.
Pickup a passenger going to Addition Alley.
Go to Addition Alley: north 5th left 1st left.
Pickup a passenger going to Cyclone.
Go to Cyclone: north 1st left 1st left.
Pickup a passenger going to Multiplication Station.
Pickup a passenger going to Multiplication Station.
Go to Multiplication Station: south 1st left 2nd right 4th left.
Pickup a passenger going to Magic Eight.
Go to Magic Eight: south 1st right.
Switch to plan "c" if no one is waiting.
'1' is waiting at Writer's Depot.
[c]
'0' is waiting at Writer's Depot.
Go to Writer's Depot: west 1st left 2nd left.
Pickup a passenger going to Post Office.
Go to Post Office: north 1st right 2nd right 1st left.

2

সি #, 50 41 বাইট

(x,y,r,X,Y,R)=>(x-=X)*x+(y-=Y)*y<(r+=R)*r

9 কেট ক্রুইজসেনকে ধন্যবাদ 9 বাইট সংরক্ষণ করা হয়েছে।


আপনি কি সেখানে লেখার (r+R)*2পরিবর্তে কিছু বাইট সংরক্ষণ করতে পারবেন না (r+R)+(r+R)?
ইয়ান এইচ।

@IanH। হ্যাঁ আমি কীভাবে মিস করেছি তা জানেন না।
TheLethalCoder

আমি কি কিছু মিস করছি বা এটি কাজ করে না ?
ইয়ান এইচ।

@IanH। আমি একটি টাইপো তৈরি করতাম, +আরএইচএসে একটি হওয়া উচিত ছিল *
TheLethalCoder

এবং আমার প্রতিক্রিয়া আরও খারাপ করেছে। সমাধান ভাল কাজ যদিও!
ইয়ান এইচ।


1

PostgreSQL, 41 টি অক্ষর

prepare f(circle,circle)as select $1&&$2;

প্রস্তুত বিবৃতি, কোনও circleস্বরলিপিতে 2 পরামিতি হিসাবে ইনপুট নেয় ।

নমুনা রান:

Tuples only is on.
Output format is unaligned.
psql (9.6.3, server 9.4.8)
Type "help" for help.

psql=# prepare f(circle,circle)as select $1&&$2;
PREPARE

psql=# execute f('5.86, 3.92, 1.670', '11.8, 2.98, 4.571');
t

psql=# execute f('8.26, -2.72, 2.488', '4.59, -2.97, 1.345');
t

psql=# execute f('9.32, -7.77, 2.8', '6.21, -8.51, 0.4');
t

psql=# execute f('4.59, -2.97, 1.345', '11.8, 2.98, 4.571');
f

psql=# execute f('9.32, -7.77, 2.8', '4.59, -2.97, 1.345');
f

psql=# execute f('5.86, 3.92, 1.670', '6.21, -8.51, 0.4');
f

1

জাভা, 50 38 বাইট

(x,y,r,X,Y,R)->Math.hypot(x-X,y-Y)<r+R

অন্যান্য উত্তরে ধারণাগুলি ব্যবহার করে এটি 38 টির মতো ছোট করা যেতে পারে: (x,y,r,X,Y,R)->Math.hypot(x-X,y-Y)<r+R । আসলে, ঠিক বুঝতে পেরেছি এটি আর্নল্ডের জাভাস্ক্রিপ্ট উত্তরের মতো ঠিক।
লাসল্লুক

ধন্যবাদ ... এই উত্তরটি গল্ফ করার ইচ্ছা ছিল না ... আমি ভেবেছিলাম এটি এমন একটি সহজ চ্যালেঞ্জ ছিল যা কিছু হবে না that পারেন golfed করা ...
রোমান Graf


1

x86 মেশিন কোড (এসএসই 2 সহ), 36 বাইট

; bool CirclesOverlap(double x1, double y1, double r1,
;                     double x2, double y2, double r2);
F2 0F 5C C3        subsd   xmm0, xmm3      ; x1 - x2
F2 0F 5C CC        subsd   xmm1, xmm4      ; y1 - y2
F2 0F 58 D5        addsd   xmm2, xmm5      ; r1 + r2
F2 0F 59 C0        mulsd   xmm0, xmm0      ; (x1 - x2)^2
F2 0F 59 C9        mulsd   xmm1, xmm1      ; (y1 - y2)^2
F2 0F 59 D2        mulsd   xmm2, xmm2      ; (r1 + r2)^2
F2 0F 58 C1        addsd   xmm0, xmm1      ; (x1 - x2)^2 + (y1 - y2)^2
66 0F 2F D0        comisd  xmm2, xmm0
0F 97 C0           seta    al              ; ((r1 + r2)^2) > ((x1 - x2)^2 + (y1 - y2)^2)
C3                 ret

উপরের ফাংশনটি দুটি বৃত্তের বর্ণনা গ্রহণ করে (x- এবং y- স্থানাঙ্কের বিন্দু এবং একটি ব্যাসার্ধ) এবং একটি বুলিয়ান মান প্রদান করে যা তারা ছেদ করে কিনা তা নির্দেশ করে।

এটি ভেক্টর কলিং কনভেনশন ব্যবহার করে, যেখানে প্যারামিটারগুলি সিমডি রেজিস্টারে পাস করা হয়। X86-32 এবং 64-বিট উইন্ডোতে, এটি __vectorcallকলিং কনভেনশন । -৪-বিট ইউনিক্স / লিনাক্স / গনুতে এটি স্ট্যান্ডার্ড সিস্টেম ভি এমডি 64 কলিং কনভেনশন

ফেরতের মানটি নিম্ন বাইটে ছেড়ে যায় EAX , যেমনটি সমস্ত x86 কলিং কনভেনশনগুলির সাথে প্রমিত।

এই কোডটি 32-বিট এবং 64-বিট x86 প্রসেসরের উপর সমানভাবে কাজ করে, যতক্ষণ না তারা এসএসই 2 নির্দেশিকা সেট সমর্থন করে (যা ইন্টেল পেন্টিয়াম 4 এবং তার পরে, বা এএমডি অ্যাথলন 64 এবং তার পরে হবে)।

AVX সংস্করণ, এখনও 36 বাইট

আপনি যদি এভিএক্সকে লক্ষ্য করে রাখছিলেন তবে আপনি সম্ভবত নির্দেশাবলীতে একটি ভেক্স প্রেফিক্স যুক্ত করতে চান। এটি বাইট গণনা পরিবর্তন করে না; নির্দেশাবলী এনকোড করতে ব্যবহৃত প্রকৃত বাইটগুলি:

; bool CirclesOverlap(double x1, double y1, double r1,
;                     double x2, double y2, double r2);
C5 FB 5C C3      vsubsd   xmm0, xmm0, xmm3   ; x1 - x2
C5 F3 5C CC      vsubsd   xmm1, xmm1, xmm4   ; y1 - y2
C5 EB 58 D5      vaddsd   xmm2, xmm2, xmm5   ; r1 + r2
C5 FB 59 C0      vmulsd   xmm0, xmm0, xmm0   ; (x1 - x2)^2
C5 F3 59 C9      vmulsd   xmm1, xmm1, xmm1   ; (y1 - y2)^2
C5 EB 59 D2      vmulsd   xmm2, xmm2, xmm2   ; (r1 + r2)^2
C5 FB 58 C1      vaddsd   xmm0, xmm0, xmm1   ; (x1 - x2)^2 + (y1 - y2)^2
C5 F9 2F D0      vcomisd  xmm2, xmm0
0F 97 C0         seta     al                 ; ((r1 + r2)^2) > ((x1 - x2)^2 + (y1 - y2)^2)
C3               ret

AVX নির্দেশাবলী গ্রহণ সুবিধা আছে তিনটি অপারেন্ড , আপনাকে অ-ধ্বংসাত্মক ক্রিয়াকলাপ করার অনুমতি দেয় তবে এটি আমাদের কোডটি এখানে কমপ্যাক্ট করতে সত্যিই সহায়তা করে না। তবে, ভেক্স প্রিফিক্সগুলির সাথে বা তার বাইরে নির্দেশাবলীর মিশ্রণের ফলে উপ-অনুকূল কোড তৈরি হতে পারে, সুতরাং আপনি সাধারণত অ্যাভিএক্সকে লক্ষ্য করে নিলে সমস্ত অ্যাভিএক্স নির্দেশাবলীর সাথে লেগে থাকতে চান এবং এই ক্ষেত্রে এটি আপনার বাইট গণনাতেও ক্ষতি করে না।



1

পিএইচপি , 66 বাইট

<?php $i=$argv;echo hypot($i[1]-$i[4],$i[2]-$i[5])<$i[3]+$i[6]?:0;

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

6 টি কমান্ড-লাইন প্যারামিটার আর্গুমেন্ট হিসাবে ইনপুট নিয়ে কমান্ড লাইন থেকে চালানো হয় এবং চেনাশোনাগুলি ওভারল্যাপ হয়ে থাকলে 1 প্রিন্ট করে, অন্য 0।


0

জুলিয়া 0.6.0 (46 বাইট)

a->((a[1]-a[2])^2+(a[3]-a[4])^2<(a[5]+a[6])^2)

0

ক্লোজার, 68 বাইট

#(<(+(*(- %4 %)(- %4 %))(*(- %5 %2)(- %5 %2)))(*(+ %6 %3)(+ %6 %3)))

ছয়টি আর্গুমেন্ট নেয়: x1, y1, r1, x2, y2, r2। সত্য বা মিথ্যা প্রত্যাবর্তন করে।

দুঃখের বিষয়, ক্লোজুরে powকিছু ধরণের কাজ করে না । প্রচুর বাইট খরচ করে।



0

আর (+ পিএসআর), 31 বাইট

pryr::f(sum((x-y)^2)^.5<sum(r))

যা ফাংশন মূল্যায়ন

function (x, y, z) 
sum((x - y)^2)^0.5 < sum(z)

xবৃত্ত 1 এর স্থানাঙ্কগুলি কোথায় , y2 বৃত্তের এবং zস্থলভাগের স্থানাঙ্কগুলি ।

পাইথাগোরাস ব্যবহার করে দুটি কেন্দ্রের মধ্যকার দূরত্ব গণনা করে এবং যদি সেই দূরত্বটি রেডির যোগফলের চেয়ে কম হয় তবে পরীক্ষা করে।

একই সাথে গণনা করতে (x1-x2)^2এবং এর জন্য আর এর ভেক্টরাইজেশন ব্যবহার করে (y1-y2)^2। এর পরে সংক্ষিপ্ত এবং স্কোয়ারওয়াল মূলযুক্ত হয়।


0

যান , 93 বাইট

package q
import c "math/cmplx"
func o(a,b complex128,r,R float64)bool{return c.Abs(b-a)<r+R}

মোটামুটি সরল অ্যালগরিদম, এটি অন্তর্নির্মিত ব্যবহার ব্যতীত অন্যান্য বেশ কয়েকটি উত্তরের সমান complex টাইপ এবং গণিত / cmplx.Abs () কল করে (

জটিল সংখ্যা হিসাবে রেডিয়ি গ্রহণ করা কোনও উপকারে আসে না, কারণ ভাসমান ঘোষণার সাশ্রয় করা (না করতে পারে float64 < complex128) এর চেয়ে বেশি বাইট যুক্ত করে ভাসমান 64৪ cast

এটি অনলাইন চেষ্টা করুন! পরীক্ষার কেসগুলি অন্তর্ভুক্ত করে এবং একটি লাইব্রেরির পরিবর্তে প্যাকেজ প্রধান ব্যবহার করে।

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