क्या मंडलियां ओवरलैप करती हैं?


21

केंद्रों के समन्वय और 2 हलकों की त्रिज्या को देखते हुए, एक सत्य मान का उत्पादन करते हैं कि वे ओवरलैप करते हैं या नहीं।

इनपुट

  • इनपुट 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)]

यह कोड गोल्फ है, बाइट्स जीत में सबसे छोटा जवाब।


4
अगर दो सर्कल बाहरी रूप से छू रहे हैं तो हमें क्या वापस लौटने की आवश्यकता है?
जंगहवान मिन

6
"स्पर्श लेकिन ओवरलैपिंग नहीं" के लिए तकनीकी शब्द "स्पर्शरेखा" है और यह ज्यामिति में एक बात है अगर कहीं और नहीं है।
dmckee

2
झांकियों को ले जाना एक बहुत सख्त आवश्यकता की तरह लगता है। क्या आप इसे अधिक सामान्य प्रतिनिधित्व के लिए आराम दे सकते हैं? मैं ब्रेन-फ्लैक में इसे हल करना चाहूंगा, लेकिन मुझे IEEE फ़्लोट्स को लागू करने के लिए समय लेने की संभावना नहीं है, और अगर मैंने ऐसा किया तो यह 90% बाइट की गिनती होगी, इसलिए मैं सिर्फ एक फ्लोट कार्यान्वयन लागू करूंगा।
गेहूं जादूगर

4
मैं यह भी बताना चाहूंगा कि बहुत सारे मामलों में "तीन दशमलव स्थानों" तक तैरना सही नहीं है। मुझे यकीन नहीं है कि आप क्या जवाब देना चाहते हैं, लेकिन अभी थोड़ा भ्रमित करना है।
गेहूं जादूगर

2
मुझे लगता है कि आपको एक गलतफहमी हो सकती है कि फ्लोट कैसे काम करता है। क्योंकि वे निश्चित आकार के होते हैं, जैसे-जैसे मूल्य बड़े होते जाते हैं, परिशुद्धता कम होती जाती है। एक बिंदु है जिसके आगे एक फ्लोट 3 दशमलव स्थानों के भीतर सभी मानों का सही प्रतिनिधित्व नहीं कर सकता है। साथ ही, अनावश्यक प्रतिबंध को हटाने के लिए एक चुनौती को संपादित करना हतोत्साहित नहीं है।
मेगो

जवाबों:


18

जेली , 5 बाइट्स

IA<S}

पहले तर्क के रूप में दो जटिल संख्याओं (केंद्रों) को लेता है, और दूसरे तर्क के रूप में दो वास्तविक संख्याओं (रेडीआई) को।

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

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

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.

अरे, मैं निर्देशांक के लिए जटिल संख्या का उपयोग करने के बारे में भूल गया। अच्छा था! : D
हाइपरनेत्रिनो

आउट ऑफ इंट्रेस्ट का नतीजा यह होगा Aकि पंक्ति सदिश "केंद्र" का आदर्श माना जाएगा? ( ÆḊस्वयं जटिल सामग्री के साथ त्रुटियां।)
जोनाथन एलन

1
@JonathanAllan हाँ, Aउनके अंतर वेक्टर के आदर्श के रूप में केंद्र की दूरी की गणना करता है।
डेनिस

11

जावास्क्रिप्ट (ईएस 6), 38 बाइट्स

इनपुट को 6 अलग-अलग चर X1 , y1 , r1 , x2 , y2 , r2 के रूप में लेता है ।

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

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


किसी के लिए जो पहले Math.hypot नहीं लगता है ।
प्युलफ्रेट


@ V.Courtois आप जिस तरीके से पैरामीटर पास करते हैं वह विधि घोषणा से मेल नहीं खाता है। यह होना चाहिए a:Double,x:Double,b:Double,y:Double,r:Double,q:Double
अरनुलद

1
@ अरनॉल्ड ओह ~ धन्यवाद! क्या मुझे इसे अलग से पोस्ट करना चाहिए?
वी। कोर्टोइस

@ वी। कर्टोइस श्योर। इसका लाभ उठाएं!
अरनुलद


7

MATL , 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?

निश्चित नहीं है कि यह मेरे लिए है, लेकिन जब मैं आपके परीक्षण लिंक का उपयोग करता हूं और रन रन करता हूं तो मुझे 'त्रुटि प्राप्त होती है' सर्वर की प्रतिक्रिया को डिकोड नहीं किया जा सकता '- यह भी निश्चित नहीं है कि यह मदद करता है, लेकिन क्या आपने जटिल संख्याओं का उपयोग करते हुए (एब) के बारे में सोचा था जेली जवाब में?
डेनिस जहीरुद्दीन

@ डेनिसजेरुद्दीन अरे, आपको यहां फिर से देखकर अच्छा लगा! (१) दोषारोपण, शायद। क्या आपने एक मुश्किल ताज़ा करने की कोशिश की? (2) मैंने किया था, लेकिन मुझे लगता है कि यह 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 में भी काम करता है।
माईस्टेपिक

@micsthepick कूल, धन्यवाद। यह सिर्फ उसी तरह है जैसे टीआईओ प्रारूपण करता है।
हाइपरएन्यूट्रीनो

4

APL (Dyalog) , 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 बाइट्स डेनिस की बदौलत


ạ/²उसी बाइट्स के साथ एक नया लिंक नहीं बनायेगा?
21


कोई बात नहीं, मुझे यह
मिलीं

आप Iपूर्ण अंतर से कम करने के बजाय उपयोग कर सकते हैं ।
डेनिस

@ डेनिस ऊह धन्यवाद
हाइपरनेत्रिनो


3

जावा 8, 41 38 बाइट्स

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

इसे यहाँ आज़माएँ।

जाहिर है, जावा भी है Math.hypot, जो 3 बाइट्स छोटा है।

संपादित करें: बस एहसास हुआ कि यह उत्तर अब ठीक वैसा ही है जैसा @ OlivierGrégoire का जावा 8 उत्तर है , इसलिए यदि आप 38-बाइट के उत्तर को पसंद करते हैं, तो कृपया उसे मेरे बजाय ।

पुराना उत्तर (41 बाइट्स) :

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

इसे यहाँ आज़माएँ।


1
ओह! तो इसीलिए मुझे आज 3 अपवोट मिले, लेकिन जब चैलेंज पोस्ट किया गया था? ^ ^ मैं सोच रहा था कि इस अजीब व्यवहार को क्या ट्रिगर किया गया;) चूंकि मुझे मेरा जवाब पसंद है, और आपने वही पोस्ट किया है, तो आपको +1 भी मिलता है! : पी
ओलिवर ग्राएगोइरे


2

पर्ल 6 , 13 बाइट्स

*+*>(*-*).abs

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

पहले दो तर्क त्रैमासिक हैं, या तो क्रम में। तीसरी और चौथी दलीलें या तो क्रम में केंद्रों के निर्देशांक हैं, जटिल संख्याओं के रूप में।


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 बाइट @KevinCruijssen की बदौलत।


क्या आप (r+R)*2इसके बजाय लिखकर कुछ बाइट्स नहीं बचा सकते हैं (r+R)+(r+R)?
इयान एच।

@IanH। हाँ मुझे नहीं पता कि मैं कैसे चूक गया।
द लीथेलकोडर

क्या मुझे कुछ याद आ रहा है या यह काम नहीं करता है ?
इयान एच।

@IanH। मैं एक टाइपो बनाता था, +RHS पर होना चाहिए था *
TheLethalCoder

और मेरी प्रतिक्रिया ने इसे और भी बदतर बना दिया। हालांकि समाधान पर अच्छा काम!
इयान एच।


1

PostgreSQL, 41 वर्ण

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

तैयार विवरण, किसी भी संकेतन में 2 मापदंडों के रूप में इनपुट लेता circleहै

नमूना रन:

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:। वास्तव में, बस एहसास हुआ कि यह अर्नुल्ड के जावास्क्रिप्ट उत्तर के समान है।
लेज़लोक

धन्यवाद ... इस उत्तर nevee golfed पर दिया जाना था ... मैंने सोचा था इस तरह के एक सरल चुनौती कुछ ऐसा है जिसे नहीं होगा सकते हैं golfed जा ...
रोमन Gräf

मुझे डर है कि आपका जवाब अब ठीक वैसा ही है जैसा पहले से ही पोस्ट किए गए उत्तर @ OlivierGrégoire ..
केविन क्रूज़सेन

1

x86 मशीन कोड (SSE2 के साथ), 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- केंद्र बिंदु और एक त्रिज्या के y- निर्देशांक) के विवरणों को स्वीकार करता है, और एक बूलियन मान देता है जो यह संकेत देता है कि वे प्रतिच्छेद करते हैं या नहीं।

यह एक वेक्टर कॉलिंग कन्वेंशन का उपयोग करता है, जहां पैरामीटर SIMD रजिस्टरों में पारित किए जाते हैं। X86-32 और 64-बिट विंडोज पर, यह __vectorcallकॉलिंग कन्वेंशन है । 64-बिट यूनिक्स / लिनक्स / ग्नू पर, यह मानक सिस्टम वी एएमडी 64 कॉलिंग कन्वेंशन है

वापसी मूल्य कम बाइट में छोड़ दिया EAXजाता है, जैसा कि सभी x86 कॉलिंग कन्वेंशन के साथ मानक है।

यह कोड 32-बिट और 64-बिट x86 प्रोसेसर पर समान रूप से अच्छी तरह से काम करता है, जब तक कि वे SSE2 निर्देश सेट (जो इंटेल पेंटियम 4 और बाद में, या एएमडी एथलॉन 64 और बाद में होगा) का समर्थन करते हैं।

AVX संस्करण, अभी भी 36 बाइट्स

यदि आप AVX को लक्षित कर रहे थे , तो आप शायद निर्देशों में VEX उपसर्ग जोड़ना चाहेंगे। यह बाइट काउंट को नहीं बदलता है; निर्देशों को एन्कोड करने के लिए उपयोग किए जाने वाले वास्तविक बाइट्स:

; 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 निर्देशों में तीन ऑपरेंड लेने का लाभ है, जिससे आप गैर-विनाशकारी संचालन कर सकते हैं, लेकिन यह वास्तव में हमें यहां किसी भी कोड को कॉम्पैक्ट करने में मदद नहीं करता है। हालाँकि, VEX उपसर्गों के साथ और उसके बिना निर्देशों को मिलाने के उप-इष्टतम कोड हो सकता है, इसलिए आप आम तौर पर सभी AVX निर्देशों के साथ रहना चाहते हैं यदि आप AVX को लक्षित कर रहे हैं, और इस मामले में, यह आपके बाइट की गिनती को भी नुकसान नहीं पहुंचाता है।



1

PHP , 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

आर (+ pryr), 31 बाइट्स

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

जो फ़ंक्शन का मूल्यांकन करता है

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

xसर्कल 1 के निर्देशांक कहां हैं, yसर्कल 2 और 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 () कहता है।

त्रिज्या को जटिल संख्या के रूप में लेना मदद नहीं करता है, क्योंकि फ्लोट64 के कलाकारों को चर घोषणा से अधिक बाइट्स बचाता है (नहीं कर सकता float64 < complex128)।

इसे ऑनलाइन आज़माएं! परीक्षण के मामलों को शामिल करता है, और एक पुस्तकालय के बजाय पैकेज मुख्य का उपयोग करता है।

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