अण्डाकार प्रणाली


9

परिचय

विमान में पाँच बिंदुओं को देखते हुए, आपका कार्य इन बिंदुओं से गुजरने वाले दीर्घवृत्त के क्षेत्र की गणना करना है।

आप मान सकते हैं कि दिए गए इनपुट मूल्यों के साथ वास्तव में एक गैर-अध: पतन दीर्घवृत्त का निर्माण किया जा सकता है।

नियम

इनपुट 10किसी भी सुविधाजनक रूप में पूर्णांक है, जो अंकों के निर्देशांक xऔर yनिर्देशांक के अनुरूप है । उदाहरण के लिए, आप 10पूर्णांकों की सूची के रूप में इनपुट ले सकते हैं [x1, y1, x2, y2, ..., x5, y5], या [[x1, y1], [x2, y2], ..., [x5, y5]], आदि .. आप दशमलव संख्या भी संभाल सकते हैं, लेकिन केवल पूर्णांकों की आवश्यकता होती है।

आउटपुट दीर्घवृत्त के क्षेत्र का एक प्रतिनिधित्व है। यह कुछ प्रतीकात्मक अभिव्यक्ति, या एक दशमलव मान हो सकता है जिसमें कम से कम 8अंक सटीक हों।

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

उदाहरण इनपुट और आउटपुट

इनपुट:

[-2, 3, 2, 5, 5, 3, 4, 0, 1, -3]

आउटपुट:

62.15326783788685

इन बिंदुओं से गुजरने वाले दीर्घवृत्त का चित्रण:

इस उदाहरण के लिए दीर्घवृत्त

और ज्यादा उदाहरण:

f(60, -92, -31, -10, 78, -19, -27, -35, 91, -37) = 9882.59540465108
f(-9, -4, 7, 7, 10, 1, -7, -10, 0, 7) = 269.5966648188643
f(-3, 2, 0, -5, 4, 0, -4, 1, -1, 2) = 98.54937293879908

क्या यह SPOJ समस्या से प्रेरित किसी भी मौके से था? http://www.spoj.com/problems/ELLIPSE/
xnor

यह नहीं था। मैं उस साइट पर सक्रिय नहीं हूं।
एथन वार्ड

इसका क्या मतलब है कि आउटपुट एक प्रतीकात्मक अभिव्यक्ति हो सकती है?
xnor

@xnor शायद (अघोषित) अण्डाकार अभिन्न?
मेगो

2
काम के लिए सबसे अच्छा उपकरण की घोषणा करना भी चल रहा है: गणित रेखांकन कार्यक्रम! जाओ आंकड़ा: पी।
मैजिक ऑक्टोपस Urn

जवाबों:


7

गणितज्ञ, 87 80 78 बाइट्स

Area@ImplicitRegion[+##Sign@#&@@Det[{1,##,1##,#^2,#2^2}&@@@{x|y,##}]>0,{x,y}]&

5 इनपुट लेता है: [{x1, y1}, ... , {x5, y5}] :।

एक सटीक / प्रतीकात्मक मूल्य देता है।

कैसे?

आज्ञा देना f(x, y)वेक्टर दिखाता है (1, x, y, xy, x^2, y^2)कुछ के लिएx, y

फिर, पंक्ति वैक्टर के साथ मैट्रिक्स का निर्धारक [f(x, y), f(x1, y1), f(x2, y2), ..., f(x5, y5)]शून्य इफ (x, y)है जो उस दीर्घवृत्त पर एक बिंदु है जिसे हम खोज रहे हैं। यानी नियतांक दीर्घवृत्त के लिए अभिव्यक्ति देता है।

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


+1। मुझे पसंद है कि आपने किस तरह से एक मुद्दा तय किया है Sign
विटालि कौरोव

5

MATLAB , 130 124 114 बाइट्स

इनपुट दो कॉलम वैक्टर के रूप में टेकियन है, एक x- और एक y- निर्देशांक के लिए है। यह विधि कम से कम सीक्वेंस रिग्रेशन का उपयोग करती है, जो सटीक दीर्घवृत्त प्रदान करती है यदि सभी बिंदु एक दीर्घवृत्त पर हों, और फिर क्षेत्र की गणना करने के लिए यहां दिए गए सूत्र (धन्यवाद @orlp) को लागू करें

function A=f(x,y);p=null([x.^2,2*x.*y,y.^2,2*x,2*y,0*x+1]);A=pi*det(p([1,2,4;2,3,5;4:6]))/abs(p(1)*p(3)-p(2)^2)^1.5

निम्नलिखित पंक्तियों को जोड़कर आप वक्र की साजिश भी कर सकते हैं:

X=x;Y=y;
[x,y] = meshgrid(linspace(-7,7,50));
W = [x(:).^2,2*x(:).*y(:),y(:).^2,2*x(:),2*y(:),0*x(:)+1];
Z=x;Z(:) = W*p;
clf;plot(X,Y,'o');hold on;contour(x,y,Z,[0,0]);

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


3

गणितज्ञ 84 बाइट्स

मुझे यह एक दिलचस्प समस्या लगी। प्रत्येक दीर्घवृत्त इकाई वृत्त का एक परिवृत्त रूपांतरण होता है जिसे {x, y} = {cos (t), Sin (t)} के रूप में परिमाणित किया जा सकता है, इसलिए वृत्त के बिंदुओं को दीर्घवृत्त / XE, yE द्वारा मैप किया जा सकता है } = ए {एक्स, वाई} + बी जहां ए एक निरंतर मैट्रिक्स और बी एक वेक्टर है। अंक में प्लग करने से 10 स्केलर समीकरण और 11 स्केलर अज्ञात होते हैं, लेकिन हम यह तय कर सकते हैं कि पैरामीटर टी = 0 पर शुरू होता है, इसलिए सिस्टम सॉल्व है। मैट्रिक्स ए के निर्धारक का निरपेक्ष मान यूनिट सर्कल के लिए दीर्घवृत्त के क्षेत्र का अनुपात है इसलिए हम पाई से गुणा करते हैं। मैक्स लेने से नकारात्मक समाधान से छुटकारा मिलता है।

Max[π(a d-b c)/.Solve@MapThread[#2=={e,f}+{a,b}Cos@#+{c,d}Sin@#&,{{0,u,v,w,x},#}]]&

उपयोग:

%@{{-2, 3}, {2, 5}, {5, 3}, {4, 0}, {1, -3}}

पैदावार:

(1001 π)/(16 Sqrt[10])

2

मैथेमेटिका, 144 बाइट्स

x_±y_:=x^2a+b*x*y+y^2c+d*x+e*y+f;n=∞;Integrate[UnitStep[x±y/.FindInstance[And@@(#±#2==0&@@@#),{a,b,c,d,e,f},Reals,2][[1]]],{x,-n,n},{y,-n,n}]& 


सभी परीक्षण मामलों के लिए काम करता है

इनपुट उदाहरण :[{{-3, 2}, {0, -5}, {4, 0}, {-4, 1}, {-1, 2}}]

परिणाम

9882.59540465108163146329
269.596664818864334050934
98.5493729387989852754258

JungHwan Min से 10 बाइट्स
डिफ़ॉल्ट विंडोज़ एन्कोडिंग [CP-1252] में 1 बाइट है


हम्म ... मैं आपके इनपुट उदाहरण पर अनंत क्यों हो रहा हूं?
नंबरमानिश

@numbermaniac मुझे नहीं पता। मैं इसे सही करवाता हूं। क्या आप इस इनपुट का उपयोग कर रहे हैं [{{-3, 2}, {0, -5}, {4, 0}, {-4, 1}, {-1, 2}}]?
J42161217

हाँ, मैं हूँ - यह अजीब है।
नंबरमानिक

मुझे मिल रहा है (3575880 π)/(2351 Sqrt[2351])जो एक उत्तर के रूप में स्वीकार किया जाता है
J42161217

1
अजीब, यहां तक ​​कि ClearAll इसे ठीक नहीं करता है। ओह ठीक है, इसके बारे में चिंता मत करो। जब तक यह आपके लिए काम करता है। माथेमेटिका के किस संस्करण पर आप हैं?
1

2

डेसमोस , 101 बाइट्स

u
v
f(a,b,c,h,k,x,y)=(((x-h)cosc+(y-k)sinc)/a)^2+(((x-h)sinc-(y-k)cosc)/b)^2
f(m,n,o,p,q,u,v)~1
mn\pi

ऑनलाइन डेसमोस बहुस्तरीय पेस्ट को पसंद नहीं करता है, इसलिए आपको इसे एक बार में एक पंक्ति में दर्ज करना होगा, या

यह ऑनलाइन की कोशिश करो!

इनपुट दो सूचियों के साथ लिया जाता है uऔर v। आउटपुट को अंतिम पंक्ति पर दिखाया गया है।

स्पष्टीकरण:

  • पहली दो पंक्तियों का नाम इनपुट चर है।
  • तीसरी पंक्ति किसी भी दीर्घवृत्त के लिए समीकरण को परिभाषित करती है, रेडी aऔर b, रोटेशन कोण cऔर ऑफसेट के साथ (h,k)

    • Prettified, यह इस तरह दिखता है: यहां छवि विवरण दर्ज करें
  • चौथी पंक्ति fसूचियों के एक प्रतिगमन की गणना करती है uऔर v, रेडी को खोजती हैm और n, रोटेशन कोण oऔर ऑफसेट ढूंढती है (p,q)

  • अंतिम पंक्ति सूत्र के साथ दीर्घवृत्त के क्षेत्र की गणना करती है A = pi*r1*r2

आप इसे ऑनलाइन भी आज़मा सकते हैं थोड़े विस्तृत, संवादात्मक दृश्य संस्करण के लिए (अलग लिंक) । आप पाँच बिंदुओं पर घूम सकते हैं और वास्तविक समय में दीर्घवृत्त और क्षेत्र देख सकते हैं:

यहां छवि विवरण दर्ज करें

वैकल्पिक रूप से, यहां उपयोग करने से थोड़ा लंबा समाधान है इस सूत्र है ( @ त्रुटिपूर्ण उत्तर के रूप में ):

डेसमोस, 106 बाइट्स

u
v
f(A,B,C,D,E,F,x,y)=Axx+2Bxy+Cyy+2Dx+2Ey+F
f(G,H,I,J,K,L,u,v)~0
\pi(GIL+2HJK-JJK-GKK-HHL)/(GI-HH)^{1.5}

यह ऑनलाइन की कोशिश करो!


आपको piअंतिम पंक्ति से पहले बैकस्लैश की आवश्यकता नहीं हो सकती है : यदि मैं टाइप करता हूं mnpi, तो पीआई प्रतीक अभी भी दिखाई देता है। इसके अलावा, क्या आपका मतलब है " आउटपुट अंतिम पंक्ति पर दिखाया गया है", इनपुट नहीं?
नंबरमानस

1
@numbermaniac मैं बैकस्लैश में डाल रहा हूँ क्योंकि जब मैं इसे कॉपी-पेस्ट करता हूँ, तो यह पहचानता नहीं है mnpi, भले ही यह शब्द जब मैं इसे टाइप करता हूँ। और हाँ, मेरा मतलब आउटपुट था, इनपुट नहीं, धन्यवाद।
स्कॉट मिलनर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.