सबसे छोटी पूर्णांक डिस्क


23

यह चुनौती सबसे छोटी डिस्क को खोजने के बारे में है जिसमें कुछ दिए गए बिंदु हैं। यह कुछ हद तक पेचीदा बना है, हालांकि, इस चुनौती से कि डिस्क के निर्देशांक और त्रिज्या दोनों पूर्णांक होने चाहिए।

आपका इनपुट पूर्णांक निर्देशांक xऔर साथ बिंदुओं की एक सूची होगी y। आप इसे टुपल्स की सूची, सूचियों की सूची या किसी अन्य तरीके से जोड़ियों के संग्रह का प्रतिनिधित्व करने के रूप में ले सकते हैं। xऔर yदोनों (संभवतः नकारात्मक) पूर्णांक होंगे। प्रत्येक बिंदु अद्वितीय होने की गारंटी है, और कम से कम एक बिंदु होगा।

आपका आउटपुट तीन नंबर, के रूप में एक डिस्क हो जाएगा X, Yऔर RX, Yऔर Rसभी पूर्णांक हैं, Xऔर Yडिस्क के केंद्र का Rप्रतिनिधित्व करते हैं और इसकी त्रिज्या का प्रतिनिधित्व करते हैं। प्रत्येक दिए गए बिंदु और केंद्र के बीच की दूरी कम से कम या उसके बराबर Rहोनी चाहिए, और एक ऐसी डिस्क मौजूद नहीं होनी चाहिए जिसमें छोटी हो Rजो इस स्थिति को भी संतुष्ट करती हो।

यह संभव है कि किसी दिए गए इनपुट के लिए कई संभावित समाधान होंगे, आपके कोड को इस मामले में कम से कम एक आउटपुट देना होगा।

यदि आपकी कोई भी भाषा है, तो आप किसी भी प्रकार की ज्योमेट्री बिल्ट का उपयोग कर सकते हैं, और इनपुट / आउटपुट सिर्फ संख्याओं के बजाय बिल्ट-इन पॉइंट / डिस्क ऑब्जेक्ट्स के माध्यम से हो सकता है।

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

Input   (Possible) Output(s)
(x,y)   (X,Y,R)
-------------------------
(0,0)   (0,0,0)
-------------------------
(0,1)   (0,0,1)
(1,0)   (1,1,1)
-------------------------
(1,4)   (4,4,3)
(3,2)
(4,1)
(4,5)
(5,2)
(7,4)
-------------------------
(-1,0)  (0,0,2)
(2,0)   (1,0,2)
-------------------------
(-1,0)  (1,0,2)
(2,1)   (0,1,2)
-------------------------
(0,0)   (1,0,1)
(1,1)   (0,1,1)

सबसे कम बाइट्स जीतता है।



एक जोड़े को टाइपो मिला, अगर आप मुझे उन्हें इंगित करने में कोई आपत्ति नहीं करते हैं: "यह कुछ हद तक मुझे बनाया गया है ..."; "... डिस्क के केंद्र का प्रतिनिधित्व करता है और R i t s त्रिज्या का प्रतिनिधित्व करता है ..."; "... और इस तरह की डिस्क मौजूद नहीं होनी चाहिए ..."
जे। सले

2
आमतौर पर पूर्णांक बनाने वाली चीजें सिर्फ कोड-गोल्फ को आसान बनाती हैं।
user202729

@ केविनक्रूजसेन यह संयोग से है। इनपुट किसी भी क्रम में हो सकते हैं।
पावेल

1
@Pavel इनपुट किसी भी क्रम में हो सकता है, या हम किसी भी क्रम में इनपुट ले सकते हैं ? जैसा कि, इनपुट किसी भी क्रम में हो सकता है और हमें अपने समाधान में सबसे पहले मैन्युअल रूप से सॉर्ट करना चाहिए, या क्या हम पहले से ही इनपुट को पहले से सॉर्ट कर सकते हैं?
केविन क्रूज़सेन

जवाबों:


6

जेली , 25 24 22 21 20 18 बाइट्स

«/r»/Œpµ³_²§½ṀĊ,)Ṃ

)1 बाइट की बचत के बारे में बताने के लिए @EriktheOutgolfer का शुक्रिया ।

2 बाइट बचाने के लिए @ डेनिस का शुक्रिया।

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

व्याख्या

«/r»/Œpµ³_²§½ṀĊ,)Ṃ      Main link. Arg: points
                        e.g. [[1,4],[3,2],[3,1]]
«/                      Find minimums by coordinate
                        e.g. [1,1]
   »/                   Find maximums by coordinate
                        e.g. [3,4]
  r                     Inclusive ranges by coordinate
                        e.g. [[1,2,3],[1,2,3,4]]
     Œp                 Cartesian product of the x and y ranges
                        e.g. [[1,1],[1,2],[1,3],[1,4],...,[3,4]]
       µ                    Chain, arg: center
                            e.g. [1,3]
        ³                   Get the original points
                            e.g. [[1,4],[3,2],[3,1]]
         _                  Subtract the center from each
                            e.g. [[0,1],[2,-1],[2,-2]]
          ²                 Square each number
                            e.g. [[0,1],[4,1],[4,4]]
           §                Sum each sublist
                            e.g. [1,5,8]
            ½               Square root of each number
                            e.g. [1,2.24,2.83]
             Ṁ              Find the maximum
                            e.g. 2.83
              Ċ             Round up
                            e.g. 3
               ,            Pair with the center point
                            e.g. [3,[1,3]]
                )       Do the above for all points
                        e.g. [[3,[1,1]],[3,[1,2]],[3,[1,3]],...,[3,[3,4]]]
                 Ṃ      Find the lexicographically smallest pair
                        e.g. [3,[1,1]]

@ डेनिस धन्यवाद! कब से जेली के वैश्वीकरण ने छोटी सूची को दोहराया, या क्या मैं इसे हटाने की गलत व्याख्या कर रहा हूं ?
पुरकाकूदरी

गहराई का मिलान पहले किया जाता है। यदि आप एक जोड़ी और एक जोड़ी बनाते हैं, तो जोड़ी सभी जोड़ियों के साथ मेल खाती है।
डेनिस

8

Brachylog v2, 19 बाइट्स

;Az{\-ᵐ~√ᵐ+}ᵐ≤ᵛ√;A≜

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

इस कार्यक्रम को लिखना आसान था - इस तरह की समस्या के लिए ब्रैचीलॉग लगभग सही है - लेकिन गोल्फ के लिए कठिन। यह मुझे आश्चर्यचकित नहीं करेगा अगर यहाँ पर एक बाइट की बचत हो रही थी, जैसा कि कुछ चीजों से मुझे कोई प्रभाव नहीं पड़ता था (और इसमें नेस्टेड मैप निर्देश शामिल हैं, आमतौर पर एक संकेत है कि आपको सदस्य / खोज का उपयोग करना चाहिए, लेकिन मैं नहीं कर सकता इसे करने का एक तरीका देखें)।

यह एक फ़ंक्शन सबमिशन है। इनपुट प्रारूप में बाएं तर्क से फ़ंक्शन में है [[x,y],[x,y],…], प्रपत्र में सही तर्क से आउटपुट है [r,[[x,y]]]। (आप, इनपुट में ऋणात्मक संख्याओं की कोशिश करने का ध्यान दें कि Brachylog का उपयोग करता है चाहते हैं _ऋण चिह्न के लिए, नहीं -। यह भ्रामक है क्योंकि समारोह → पूरा कार्यक्रम आवरण उस के साथ, कमांड लाइन तर्क का उपयोग अनुरोध किया Brachylog जहाजों Z, ऋणात्मक संख्याओं को पेश करेंगे नियमित माइनस साइन के साथ आउटपुट में ।)

व्याख्या

;Az{\-ᵐ~√ᵐ+}ᵐ≤ᵛ√;A≜
;A                   Append something
  z                    to every element of the input
   {       }ᵐ        such that for each resulting element:
     -                 Subtracting
    \ ᵐ                  corresponding elements {of the (input, appended) element}
       ~√              and un-squarerooting
         ᵐ               {the result of} each {subtraction}
          +            and summing {the resulting square numbers}
             ≤       {lets us find} a number at least as large as
              ᵛ        every element {of the list of sums}
               √     which can be square-rooted;
                ;A   append the same list as initially to it.
                  ≜  Find the first integer solution to the above, lexicographically.

यह दिलचस्प है कि हम Brachylog को कुछ गुणों का मान खोजने के लिए कह रहे हैं (इस मामले में, डिस्क का त्रिज्या Aउस बिंदु पर केंद्रित है जो सभी इनपुट बिंदुओं को फिट करता है), लेकिन शायद ही इस पर कोई आवश्यकता है (हम सभी की आवश्यकता है) कि त्रिज्या एक संख्या है)। हालांकि, ब्रैकीलॉग आंतरिक रूप से ठोस संख्याओं का उपयोग करने की कोशिश करने के बजाय प्रतीकात्मक रूप से प्रश्न में त्रिज्या की गणना करेगा, इसलिए जब अंतिम स्थान पर पहुंच जाता है, तो यह एक ही बार में दो चीजों को पूरा करता है: पहला, यह सुनिश्चित करता है कि केवल पूर्णांक का उपयोग Aऔर त्रिज्या के निर्देशांक के लिए किया जाता है। (एक वर्ग संख्या होने के लिए चौकोर त्रिज्या के लिए मजबूर करना, और ≤ᵛ"अधिकतम या अधिक" खोजने के उपयोग की व्याख्या करना ); दूसरा, यह सबसे छोटा संभव व्यवहार्य त्रिज्या पाता है (जैसा कि त्रिज्या आउटपुट में पहले आता है)।

एक बात जो कार्यक्रम में निर्दिष्ट नहीं है, वह यह है कि सभी बिंदुओं को डिस्क के एक ही केंद्र के खिलाफ मापा जाता है; जैसा कि लिखा गया है, कोई अड़चन नहीं है कि हम प्रत्येक बिंदु के लिए एक अलग केंद्र का उपयोग नहीं करते हैं। हालांकि, टाईब्रेक ऑर्डर (जो इस मामले में तीसरे द्वारा निर्धारित किया गया है , और जो एक संरचना बाधा के रूप में मूल्यांकन किया जाएगा, इससे पहले कि मूल्य बाधा उत्पन्न हो ) Aजितना संभव हो उतना छोटा होना चाहिए (यानी एक तत्व, इसलिए हम उसी का उपयोग करते हैं हर बार केंद्र; यह Aपहले शून्य-लंबाई की कोशिश करता है लेकिन यह स्पष्ट रूप से काम नहीं करता है, इसलिए यह एक सिंगलटन सूची की कोशिश करता है)। नतीजतन, हम अंत में एक उपयोगी बाधा प्राप्त कर रहे हैं (कि हमारे पास केवल एक डिस्क है) "मुफ्त में"।

यह समाधान किसी भी संख्या के आयामों के सामान्यीकरण के लिए होता है , जिसमें स्रोत कोड में कोई परिवर्तन नहीं होता है; यहाँ कोई धारणा नहीं है कि चीजें दो-आयामी हैं। इसलिए यदि आपको सबसे छोटे पूर्णांक क्षेत्र की आवश्यकता होती है, तो आपके पास वह भी हो सकता है।


3

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

{min [X]([Z]($^p)>>.minmax).map:{$p.map({(@_ Z-$_)>>².sum**.5}).max.ceiling,$_}}

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

2-तत्व सूची के रूप में बिंदुओं की एक सूची लेता है ((X1, Y1), (X2, Y2), ...)। एक सूची देता है (R, (X, Y))। Pietu1998 के जेली उत्तर के समान दृष्टिकोण का उपयोग करता है:

[X]([Z]($^p)>>.minmax)  # All possible centers within the bounding box
.map:{ ... }            # mapped to
$p.map({(@_ Z-$_)>>².sum**.5}).max  # maximum distance from any point
.ceiling                # rounded up,
,$_                     # paired with center.
min                     # Find minimum by distance.

minmaxविधि के रूप में यह एक रिटर्न यहाँ उपयोगी है Range। श्रेणियों का कार्टेशियन उत्पाद पूर्णांक निर्देशांक के साथ सीधे सभी बिंदुओं को प्राप्त करता है।


2

05AB1E , 26 बाइट्स

øεWsàŸ}`âεUIεX-nOt}àîX‚}{н

पोर्ट ऑफ @ Pietu1998 जेली का जवाब

इसे ऑनलाइन आज़माएं या सभी परीक्षण मामलों को सत्यापित करें

स्पष्टीकरण:

ø                    # Zip the (implicit) input, swapping the rows and column
                     #  i.e. [[1,4],[3,2],[3,1]] → [[1,3,3],[4,2,1]]
 ε    }              # Map each to:
  W                  #  Push the smallest value (without popping the list)
                     #   i.e. [[1,3,3],[4,2,1]] → [1,1]
   s                 #  Swap so the list is at the top of the stack again
    à                #  Pop the list and push the largest value
                     #   i.e. [[1,3,3],[4,2,1]] → [3,4]
     Ÿ               #  Take the inclusive range of the min and max
                     #   i.e. [[1,2,3],[1,2,3,4]]
`                    # After the map, push both lists separated to the stack
 â                   # And take the cartesian product of the two lists
                     #  i.e. [[1,2,3],[1,2,3,4]]
                     #   → [[1,1],[1,2],[1,3],[1,4],[2,1],[2,2],[2,3],[2,4],[3,1],[3,2],[3,3],[3,4]]
  ε             }    # Map each pair to:
   U                 #  Pop and store the current value in variable `X`
    I                #  Push the input
     ε     }         #  Map each pair in the input to:
      X              #   Push variable `X`
       -             #   Subtract it from the current pair
                     #    i.e. [3,2] - [1,3] → [2,-1]
        n            #   Take the square of each
                     #    i.e. [2,-1] → [4,1]
         O           #   Sum the lists
                     #    i.e. [4,1] → 5
          t          #   Take the square-root of each
                     #    i.e. 5 → 2.23606797749979
            à        #  Pop the converted list, and push its largest value
                     #   i.e. [[3.0,2.23606797749979,2.0],[2.0,2.0,2.23606797749979],...,[2.0,2.0,3.0]]
                     #    → [3.0,2.23606797749979,...,3.0]
             î       #  Round it up
                     #   i.e. [3.0,2.23606797749979,...,3.0] → [3.0,3.0,3.0,4.0,4.0,3.0,3.0,4.0,4.0,3.0,3.0,3.0]
              X     #  Pair it with variable `X`
                     #   i.e. [[3.0,[1,1]],[3.0,[1,2]],...,[3.0,[3,4]]]
                 {   # After the map, sort the list
                  н  # And take the first item (which is output implicitly)
                     #  i.e. [[3.0,[1,1]],[3.0,[1,2]],...,[3.0,[3,4]]] → [3.0,[1,1]]

2

मतलाब, 73 बाइट्स

function g(x);[r,~,d]=fminimax(@(a)pdist2(x,a),[0 0]);[round(r) ceil(d)]

बस सबसे छोटा समाधान (फ़्लोटिंग पॉइंट) और गोल को निकटतम बिंदु पर खोजें और त्रिज्या (न्यूनतम समस्या के लिए सबसे खराब स्थिति) को छत दें। मुझे यकीन है कि अगर सभी संभावित मामलों (सटीक के भीतर) के लिए सही समाधान पैदावार के लिए पता नहीं है, लेकिन परीक्षण मामलों के लिए यह काम करना चाहिए (अगर मैं एक टाइपिंग त्रुटि नहीं किया था)।

इसके साथ बुलाओ

g([1 4;3 2;4 1;4 5;5 2;7 4])

(0,0),(1,1)fminimax(0.5,0.5)(1,1)2/21(0,0)

आप सही हैं, लेकिन fminimax का आउटपुट [0.500000211699422 0.499999788525202] है, इसलिए यह सही तरीके से राउंड करता है। इसलिए मैं यहां भाग्यशाली हूं। मैं वर्तमान में सोच रहा हूं कि इस समस्या को कैसे दूर किया जाए (क्योंकि यह केवल शुद्ध भाग्य से काम करता है)।
जोनास

2

पायथ , 34 33 बाइट्स

hSm+.EeSm@s^R2-Vdk2Qd*Fm}FhM_BSdC

आउटपुट फॉर्म में है [R,x,y]

इसे यहाँ ऑनलाइन आज़माएँ , या यहाँ पर सभी परीक्षण मामलों को सत्यापित करें

hSm+.EeSm@s^R2-Vdk2Qd*Fm}FhM_BSdCQ   Implicit: Q=eval(input())
                                     Trailing Q inferred
                                CQ   Transpose (group x and y coordinates separately)
                       m             Map each in the above, as d, using:
                              Sd       Sort d
                            _B         Pair with its own reverse
                          hM           Take the first element of each, yielding [min, max]
                        }F             Generate inclusive range
                     *F              Cartesian product of the above two lists, yielding all coordinates in range
  m                                  Map each coordinate in the above, as d, using:
        m          Q                   Map each coordinate in input, as k, using:
              -Vdk                       Take the difference between x and y coordinates in d and k
           ^R2                           Square each
          s                              Sum
         @        2                      Take the square root
      eS                               Take the largest of the result
    .E                                 Rounded up
   +                d                  Prepend to d
 S                                   Sort the result, first element as most significant
h                                    Take first element

संपादित करें: आउटपुट स्वरूप, पिछले संस्करण को पुन: व्यवस्थित करके एक बाइट को बचाया:

heDm+d.EeSm@s^R2-Vdk2Q*Fm}FhM_BSdC


2

वोल्फ्राम भाषा (गणितज्ञ) , 66 बाइट्स

यहाँ एक क्रूर बल दृष्टिकोण है। मैंने बहुत छोटे BoundingRegion[#,"MinDisk"]&समारोह पर विचार किया लेकिन पूर्णांक निर्देशांक और त्रिज्या को बाध्य करने का कोई तरीका नहीं है।

Minimize[{r,RegionWithin[{x,y}~Disk~r,Point@#]},{x,y,r},Integers]&

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


अच्छा लगा। लेकिन, कैसे {Round@#[[1]], Ceiling@#[[2]]} &@BoundingRegion[#, "MinDisk"]&?
डेविड नोव

@DavidC, केंद्र की गोलाई इसे Sqrt [2] / 2=.707 तक ले जा सकती है, लेकिन छत को ले जाने के लिए आवश्यक नहीं कि त्रिज्या का मुकाबला करने के लिए पर्याप्त लंबाई जोड़ दी जाए। मुझे लगता है कि उस असफलता का एक उदाहरण सिर्फ दो बिंदु होंगे {{0,0}, {
11,11

मुझे पता है तुम्हारा क्या मतलब है!
डेविड एनसी

2

जावा 10, 283 279 277 257 बाइट्स

C->{int M=1<<31,m=M,X=M,Y=M,x=M-1,y=x,t,a,b,r[]={x};for(var c:C){x=(t=c[0])<x?t:x;X=t>X?t:X;y=(t=c[1])<y?t:y;Y=t>Y?t:Y;}for(;y<=Y;y++)for(t=x;t<=X;r=m<r[0]?new int[]{m,t,y}:r,m=M,t++)for(var c:C){a=c[0]-t;b=c[1]-y;a*=a;m=(a=(int)Math.ceil(Math.sqrt(a+=b*=b)))>m?a:m;}return r;}

-20 बाइट्स @nwellnhof की टिप का उपयोग करने के लिए धन्यवाद Math.hypot

परिणाम-सरणी क्रम में है [R,X,Y]

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

स्पष्टीकरण:

C->{                  // Method with 2D int-array as parameter & int-array as return-type
  int M=1<<31,        //  Minimum `M`, starting at -2,147,483,648
      m=M,            //  Temp integer, starting at -2,147,483,648 as well
      X=M,            //  Largest X coordinate, starting at -2,147,483,648 as well
      Y=M,            //  Largest Y coordinate, starting at -2,147,483,648 as well
      x=M-1,          //  Smallest X coordinate, starting at 2,147,483,647
      y=x,            //  Smallest Y coordinate, starting at 2,147,483,647 as well
      t,a,            //  Temp integers, starting uninitialized
      r[]={x};        //  Result-array, starting at one 2,147,483,647
  for(var c:C){       //  Loop over the input-coordinates
    x=(t=c[0])<x?t:x; //   If the X coordinate is smaller than `x`, change it
    X=t>X?t:X;        //   If the X coordinate is larger than `X`, change it
    y=(t=c[1])<y?t:y; //   If the Y coordinate is smaller than `y`, change it
    Y=t>Y?t:Y;}       //   If the Y coordinate is larger than `Y`, change it
 for(;y<=Y;y++)       //  Loop `y` in the range [`y`,`Y`]:
   for(t=x;t<=X       //   Inner loop `t` in the range [`x`,`X`]:
          ;           //     After every iteration:
           r=m<r[0]?  //      If `m` is smaller than the first value:
              new int[]{m,t,y}
                      //       Replace the result with `m,t,y`
             :        //      Else:
              r,      //       Leave `r` unchanged
           m=M,       //      Reset `m` to -2,147,483,648 for the next iteration
           t++)       //      And increase `t` by 1
     for(var c:C)     //    Inner loop over the input-coordinates
       m=(a=(int)Math.ceil(Math.hypot(c[0]-t,c[1]-y)))
                      //     Subtract `t` from the X coordinate;
                      //     subtract `y` from the Y coordinate;
                      //     take the hypot (<- sqrt(x*x+y*y)) of those
                      //     ceil it
                      //     And set `a` to this value
          >m?         //     If `a` is larger than `m`:
           a          //      Set `m` to `a`
          :           //     Else:
           m;         //      Leave `m` unchanged
  return r;}          //  Return the result `r`

1
आप कम से कम 8 बाइट्स के साथ बचा सकते हैं Math.hypot
nwellnhof

@nwellnhof आह, पूरी तरह से भूल गया Math.hypot, जो इस चुनौती के लिए एकदम सही है! -20 बाइट वहीं। धन्यवाद। :)
केविन क्रूज़सेन

1

जावास्क्रिप्ट, 245 बाइट्स

a=>{[b,c,d,e]=a.reduce(([j,k,l,m],[h,i])=>[j>h?j:h,k<h?k:h,l>i?l:i,m<i?m:i],[,,,,]);for(f=c;f<b;f++){for(g=e;g<d;g++){s=a.reduce((o,[p,q])=>o>(r=(p-f)**2+(q-g)**2)?o:r);n=n?n[2]>s?[f,g,s]:n:[f,g,s]}}return [n[0],n[1],Math.ceil(Math.sqrt(n[2]))]}

(थोड़ा) अधिक पठनीय संस्करण:

a=>{
    [b,c,d,e]=a.reduce(([j,k,l,m],[h,i])=>[j>h?j:h,k<h?k:h,l>i?l:i,m<i?m:i],[,,,,]);
    for(f=c;f<b;f++){
        for(g=e;g<d;g++){
            s=a.reduce((o,[p,q])=>o>(r=(p-f)**2+(q-g)**2)?o:r);
            n=n?n[2]>s?[f,g,s]:n:[f,g,s]
        }
    }
    return [n[0],n[1],Math.ceil(Math.sqrt(n[2]))]
}

बस बाउंडिंग बॉक्स पाता है, और उस बॉक्स में प्रत्येक समन्वय करता है कि क्या यह सबसे अच्छा है।

मैं एक अनुमानित उत्तर के साथ 8 बाइट्स बचा सकता था, प्रतिस्थापित करके:

Math.ceil(Math.sqrt(n[2])) साथ में ~~(n[2]+1-1e-9)


वहाँ गोल्फ के लिए और अधिक चीजें सुनिश्चित कर रहे हैं, लेकिन जेएस मेरे मजबूत सूट नहीं है। फिर भी, आप गोल्फ कर सकते हैं for(f=c;f<b;f++){for(g=e;g<d;g++){s=a.reduce((o,[p,q])=>o>(r=(p-f)**2+(q-g)**2)?o:r);n=n?n[2]>s?[f,g,s]:n:[f,g,s]}}करने के लिए for(f=c;f<b;f++)for(g=e;g<d;n=n?n[2]>s?[f,g,s]:n:[f,g,s],g++)s=a.reduce((o,[p,q])=>o>(r=(p-f)**2+(q-g)**2)?o:r);। और मुझे पूरा यकीन है कि आप अंतरिक्ष को हटा सकते हैं return[
केविन क्रूजसेन 21

1
आप शायद कुछ बाइट्स का उपयोग करके बचा सकते हैं Math.hypot
nwellnhof


1

चारकोल , 65 बाइट्स

≔Eθ§ι¹ζ≔Eθ§ι⁰ηF…·⌊η⌈ηF…·⌊ζ⌈ζ⊞υ⟦ικ⟧≔Eυ⌈EθΣEιX⁻§λξν²ηI§υ⌕η⌊ηI⌈X⌊η·⁵

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। स्पष्टीकरण:

≔Eθ§ι¹ζ

में y- निर्देश प्राप्त करें z

≔Eθ§ι⁰η

में x- निर्देश प्राप्त करें h

F…·⌊η⌈ηF…·⌊ζ⌈ζ⊞υ⟦ικ⟧

सभी संभावित डिस्क केंद्रों की सूची को शामिल करने hऔर zउत्पन्न करने के लिए न्यूनतम से लेकर समावेशी रेंज पर लूप ।

≔Eυ⌈EθΣEιX⁻§λξν²η

सभी डिस्क केंद्रों पर लूप करें, फिर सभी मूल बिंदुओं पर लूप करें, फिर निर्देशांक, घटाना, वर्ग, योग दोनों पर लूप करें, अधिकतम लें, और परिणामी सूची को सहेजें।

I§υ⌕η⌊η

न्यूनतम अधिकतम व्यास की स्थिति का पता लगाएं और संबंधित डिस्क केंद्र को प्रिंट करें।

I⌈X⌊η·⁵

न्यूनतम अधिकतम व्यास प्रिंट करें, लेकिन इसे अगले पूर्णांक तक गोल करें।

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