कार्यक्रम एक अनियंत्रितता स्कोर


15

आपका कार्य एक गणितीय फ़ंक्शन को प्रोग्राम करना है s, जो A2 डी प्लेन में बिंदुओं के एक गैर-रिक्त परिमित सेट लेता है , और एक अनियंत्रित स्कोर को आउटपुट करता है s(A)जो निम्नलिखित गुणों को संतुष्ट करता है:

  1. सकारात्मक निश्चितता : यदि कोई वृत्त या एक सीधी रेखा है जिसमें सभी बिंदु हैं A, तो s(A) = 0। अन्यथाs(A) > 0
  2. विशेषण: यह nonnegative वास्तविक संख्याओं के लिए विशेषण है, जिसका अर्थ है कि प्रत्येक nonnegative वास्तविक संख्या के लिए विमान rका एक सूक्ष्म उपसमूह Aहै s(A) = r

  3. ट्रांसलेशन इनवेरियन: ट्रांसलेशन इंवेरिएंट s अगर s(A) = s(A + v)हर वेक्टर vऔर सभी के लिए है A

  4. स्केल इनवेरियन: स्केल इंवरिएंट s है, अगर s(A) = s(A * t)हर के लिए t≠0और सभी के लिए A

  5. निरंतरता। sकहा जाता है कि निरंतर अगर समारोह f(p) := s(A ∪ {p})(एक बिंदु मानचित्रण pएक वास्तविक संख्या के लिए) वास्तविक संख्या पर मानक निरपेक्ष मूल्य का उपयोग कर निरंतर है, और विमान के अंक पर मानक यूक्लिडियन आदर्श।

सहज रूप से इस अनियंत्रितता स्कोर को बोलते हुए रैखिक प्रतिगमन में सहसंबंध गुणांक के समान कुछ सोचा जा सकता है।

विवरण

सिद्धांत रूप में आपके कार्य को वास्तविक में काम करना पड़ता है, लेकिन इस चुनौती के उद्देश्य के लिए आप विकल्प के रूप में फ्लोटिंग पॉइंट संख्या का उपयोग कर सकते हैं। कृपया अपनी सबमिशन की एक व्याख्या और एक तर्क प्रदान करें कि वे पाँच गुण क्यों हैं। आप निर्देशांक की दो सूचियाँ या इनपुट के रूप में टुपल्स या इसी तरह के प्रारूपों की सूची ले सकते हैं। आप मान सकते हैं कि इनपुट में कोई बिंदु दोहराया नहीं गया है अर्थात सभी बिंदु अद्वितीय हैं।


1
क्या आप कुछ परीक्षण मामलों को जोड़ सकते हैं?
झबरा

सर्कल के लिए A के सभी बिंदुओं को शामिल करने का क्या मतलब है ?
H.PWiz

@ H.PWiz 2d समतल के उपसमूह के रूप में एक वृत्त पर विचार करें, एक बिंदु वृत्त में समाहित है यदि यह इस उपसमुच्चय का एक तत्व है।
दोष

@ शगुन कोई ऐसा संभव नहीं है, जो अद्वितीय न हो s। केवल एक चीज जिसके लिए आप उदाहरण बना सकते हैं वह है s(A) = 0जिसके लिए पहली संपत्ति का उपयोग करना तुच्छ है।
दोष

क्या हमारा कार्यक्रम सैद्धांतिक रूप से शून्य संभावना में त्रुटि कर सकता है? (वास्तविक संभावना नॉनज़रो है क्योंकि फ़्लोटिंग पॉइंट संख्या असतत है) / क्या आप फ़्लोटिंग पॉइंट इंप्रेशन को अनदेखा करने की अनुमति देते हैं? प्रासंगिक मेटा
user202729

जवाबों:


2

अजगर 2 सुन्न के साथ, 116 बाइट्स

from numpy import*
def f(x,y):a=linalg.lstsq(hstack((x,y,ones_like(x))),(x*x+y*y)/2);return a[1]/sum((x-a[0][0])**4)

X और y को 2d कॉलम वैक्टर के रूप में लेता है और एक सरणी देता है जिसमें उत्तर होता है। ध्यान दें कि यह पूरी तरह से सीधी रेखा के लिए एक खाली सरणी देगा या 3 या उससे कम अंक के साथ। मुझे लगता है कि अगर सही फिट है तो lstsq कोई अवशिष्ट नहीं देता है।

व्याख्या

अनिवार्य रूप से, यह सबसे अच्छा फिट का चक्र ढूंढता है और वर्ग अवशेष प्राप्त करता है।

हम कम से कम करना चाहते हैं (x - x_center)^2 + (y - y_center)^2 - R^2। यह गंदा और nonlinear लग रहा है, लेकिन हम फिर से लिखने सकते हैं कि के रूप में x_center(-2x) + y_center(-2y) + stuff = x^2 + y^2है, जहां stuffअभी भी गंदा और के मामले में अरेखीय है x_center, y_centerऔर Rहै, लेकिन हम इसके बारे में देखभाल करने के लिए की जरूरत नहीं है। तो हम सिर्फ हल कर सकते हैं [-2x -2y 1][x_center, y_center, stuff]^T = [x^2 + y^2]

अगर हम वास्तव में चाहते थे तो हम आर वापस कर सकते थे, लेकिन इससे हमें बहुत मदद नहीं मिली। शुक्र है, lstsq फ़ंक्शन हमें अवशिष्ट दे सकता है, जो अधिकांश स्थितियों को संतुष्ट करता है। केंद्र को घटाकर और स्केलिंग द्वारा (R^2)^2 = R^4 ~ x^4हमें अनुवादात्मक और पैमाना अदर्शन मिलता है।

  1. यह सकारात्मक निश्चित है क्योंकि चुकता अवशिष्ट अवशिष्ट हैं, और हम एक वर्ग द्वारा विभाजित कर रहे हैं। यह मंडलियों और रेखाओं के लिए 0 की ओर जाता है क्योंकि हम एक वृत्त को फिट कर रहे हैं।
  2. मुझे पूरा यकीन है कि यह विशेषण नहीं है, लेकिन मैं एक अच्छा बाध्य नहीं हो सकता। यदि कोई ऊपरी सीमा है, तो हम कुछ और बाइट्स के लिए नॉनवेजेटिव रियल (उदाहरण के लिए, 1 / (बाउंड - जवाब) - 1 / बाउंड) के साथ [0, बाउंड) मैप कर सकते हैं।
  3. हम केंद्र को घटाते हैं, इसलिए यह पारदर्शी रूप से अपरिवर्तनीय है।
  4. हम x ** 4 से विभाजित करते हैं, जो स्केल निर्भरता को हटाता है।
  5. यह निरंतर कार्यों से बना है, इसलिए यह निरंतर है।

क्या आप विस्तार से बता सकते हैं कि वास्तव में आपका सबमिशन क्या कंप्यूटिंग है?
दोष

@flawr ने संपादित किया कि।

मैंने इसे टी (0) के लिए {(1, 0), (2, 0), (3, 0), (4, t)} पर परीक्षण करने की कोशिश की, लेकिन f(array([[1.0],[2.0],[3.0],[4.0]]),array([[0.0],[0.0],[0.0],[t]]))मुझे array([ 0.00925926])सभी नॉनजेरो के लिए दे रहा है t। (मुझे पता है कि आपने कहा था कि यह t = 0 के लिए टूटता है, लेकिन परिणाम कम से कम 0 के लिए t → 0. दृष्टिकोण होना चाहिए) क्या मैं इसे गलत कह रहा हूं?
एंडर्स कासोर्ग

2

पायथन, 124 बाइट्स

lambda A:sum(r.imag**2/2**abs(r)for a in A for b in A for c in A for d in A if a!=d!=b!=c for r in[(a-c)*(b-d)/(a-d)/(b-c)])

ले जाता है एक जटिल संख्या (के अनुक्रम के रूप में x + 1j*y), और योग इम ( आर ) 2 /2 | आर | सभी जटिल पार अनुपातों के लिए r में चार अंक की एक

गुण

  1. सकारात्मक निश्चितता। सभी शब्द अप्रमाणिक हैं, और वे सभी बिल्कुल शून्य हैं जब सभी क्रॉस-अनुपात वास्तविक होते हैं, जो तब होता है जब अंक कोलियर या कंसीलर होते हैं।

  2. Surjectivity। चूँकि योग को कई बिंदुओं को जोड़कर मनमाने ढंग से बड़ा किया जा सकता है, अतियथार्थवाद निरन्तरता से चलेगा।

  3. अनुवाद Invariance। क्रॉस-अनुपात अनुवाद-अपरिवर्तनीय है।

  4. पैमाने पर आक्रमण। क्रॉस-अनुपात स्केल-इनवेरिएंट है। (वास्तव में, यह सभी Möbius परिवर्तनों के तहत अपरिवर्तनीय है।)

  5. निरंतरता। पार अनुपात बढ़ाया जटिल विमान को एक सतत नक्शा है, और आर ↦ इम ( आर ) 2 /2 | आर | (from) 0 के साथ) विस्तारित कॉम्प्लेक्स प्लेन से रियल तक एक निरंतर मानचित्र है।

(नोट: समान गुणों वाला एक सैद्धांतिक रूप से प्रारंभिक नक्शा r ↦ (Im ( r ) / / ( C - r | 2 )) 2 है , जिसके समोच्च रेखाएँ क्रॉस-अनुपात के सभी चार बिंदुओं को दर्शाती हैं। यदि आपको वास्तव में आवश्यकता है एक अनियंत्रितता माप, आप शायद यही चाहते हैं।)

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