हीरा पहेलियाँ!


21

स्पष्टीकरण:

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

यहाँ छवि विवरण दर्ज करें धुँधली छवि के लिए क्षमायाचना के उदाहरण , इसका सबसे अच्छा मुझे मिल सकता है। इसके अलावा, बुलबुले में संख्याओं को अनदेखा करें। हीरे का शीर्ष उत्पाद है, नीचे का योग है, दाएं और बाएं दो नंबर हैं। उत्तर इस प्रकार हैं: (ये आपके परीक्षण के मामले भी हैं)

  1. 9, -7
  2. -2, -1
  3. ५, 8
  4. -9, -9

नियम:

  • आप किसी भी पूर्व-परिभाषित कार्यों या वर्गों का उपयोग नहीं कर सकते हैं जो आपके लिए इसे पूरा करते हैं।
  • आपका कोड एक पूर्ण कार्यक्रम या फ़ंक्शन होना चाहिए जो या तो रिटर्न देता है या एक बार उत्तर पाता है, जो उन्हें मिल जाता है
  • इनपुट एक योग और उत्पाद है, जो एक फ़ंक्शन पैरामीटर या उपयोगकर्ता इनपुट के रूप में इनपुट किया जाता है

विशेष विवरण:

  • मान लें कि दो नंबर, योग और उत्पाद हमेशा एक पूर्णांक होंगे।
  • दोनों उत्तर -127 से 127 के बीच होंगे।
  • आपका इनपुट दो पूर्णांक (सम और उत्पाद) होगा।

याद रखें कि यह कोड-गोल्फ है, इसलिए सबसे छोटी बाइट गिनती जीतती है। कृपया अपना उत्तर मानक ## भाषा के नाम, बाइट गणना के साथ लिखें

संपादित करें: इसके अलावा, Doorknob ने बताया कि यह मूल रूप से "x x 2 + bx + c," का एक द्विघात कारक है। इस चुनौती के बारे में सोचने और दृष्टिकोण करने का एक और तरीका है। : डी


9
यह अनिवार्य रूप से "कारक प्रपत्र की द्विघात है x^2 + bx + c," सही है?
दरवाज़े

1
b = - (x + y), c = (x * y)
TheNumberOne

सरलीकरण (x + n)(x + m)आपको देता है x^2 + (n+m)x + (n*m), इसलिए फैक्टरिंग ने कहा कि द्विघात मूल रूप से इस प्रश्न के बराबर है (यदि मैं इसे सही ढंग से समझ रहा हूं)।
दरवाज़े

@Doorknob ob हाँ आप सही हैं। मैं अनुमान लगा रहा हूं कि मैं एक डुप्लिकेट के रूप में चिह्नित होने वाला हूं। :(
अश्विन गुप्ता

खैर, मुझे नहीं लगता कि हमारे पास "फ़ैक्टर x ^ 2 + bx + c" प्रश्न अभी भी है। बस इशारा कर रहे हैं कि समस्याएं बहुत समान हैं।
दरवाज़े

जवाबों:


18

जेली , 15 11 10 बाइट्स

Hð+,_ðH²_½

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

निम्न बाइनरी कोड जेली दुभाषिया के इस संस्करण के साथ काम करता है ।

0000000: 48 98 2b 2c 5f 98 48 8a 5f 90  H.+,_.H._.

विचार

यह इस तथ्य पर आधारित है कि

सूत्र

कोड

Hð+,_ðH²_½    Left input: s -- Right input: p

 ð   ð        This is a link fork. We define three links, call the left and right
              link with the input as arguments, then the middle link with the
              results as arguments.

H             Left link, dyadic. Arguments: s p

H             Halve the left input.

     ðH²_½    Right link, dyadic. Arguments: s p

      H       Halve the left input.
       ²      Square the result.
        _     Hook; subtract the right input from the result.
         ½    Apply square root to the difference.

 ð+,_         Middle link, dyadic. Arguments: (results of the previous links)

  +           Compute the sum of the results.
    _         Compute the difference of the results.
   ,          Pair.

1
यह एक बहुत अच्छा ऑनलाइन संकलक है। काश, उनके पास जावा के लिए ऐसा ही होता।
अश्विन गुप्ता

2
@AshwinGupta डेनिस ने स्वयं बनाया, वास्तव में;) जावा के लिए, हमेशा आइडोन है
दरवाज़े

@Doorknob ob हाँ, मुझे पता है कि उनका ऑनलाइन कंपाइलर बहुत अच्छा है। मैं Ideone, इसके अच्छे और सभी पर रहा हूं, लेकिन इसमें मल्टीकल सपोर्ट नहीं है, जो एक समस्या है। मेरे पास स्कूल डी में अपने अधिक जटिल कार्यक्रमों का परीक्षण करने का कोई तरीका नहीं है। इसके अलावा, यह एक iPad ब्राउज़र पर काम नहीं करता है जो या तो यह विश्वास करता है कि इसकी आवश्यकता नहीं है क्योंकि उस कंप्यूटिंग डिवाइस के साथ हमें प्रदान किया गया है ...
अश्विन गुप्ता

जब तक कोई 14 को हरा नहीं सकता, मुझे लगता है कि आप जीते।
अश्विन गुप्ता

3
ठीक है, जेली अब आधिकारिक तौर पर पागलपन कम है। पाइथ के आसपास अपना सिर लपेटने के बाद मुझे इस भाषा को सीखने का अधिकार मिल गया है ...
ETHproductions

14

यूनिकॉर्न , 4650 2982 1874 1546

[ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 ( 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 ( ) ) 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 2 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 ( 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 ✨✨✨✨✨✨✨ 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 4 🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 ( ) ) 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤 ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ ]

अब बकरियों के साथ, इंद्रधनुष, और निखर उठती हैं!

उम्मीद से कम जावा।


एक कस्टम एन्कोडिंग का उपयोग करता है जिसे के साथ लागू किया जा सकता हैApplyEncoding

व्याख्या

यह कैसे काम करता है??? यूनिकॉर्न (और थोड़ा कोड) के जादू के साथ।

यूनिकॉर्न को जावास्क्रिप्ट में संकलित किया गया है

प्रत्येक अनुभाग को एक स्थान से अलग किया जाता है, और प्रत्येक अनुभाग जावास्क्रिप्ट कोड में एक चरित्र का प्रतिनिधित्व करता है।

यदि खंड में यूनिकॉर्न होते हैं, तो अनुभाग का चरित्र अनुभाग की लंबाई है, एक चार कोड में परिवर्तित किया जाता है (जैसे 32 यूनिकॉर्न एक स्थान होगा)

यदि अनुभाग में बकरियां होती हैं, तो अनुभाग की लंबाई दोगुनी हो जाती है और फिर एक चार कोड में बदल जाती है।


यदि कार्यक्रम के विशेष चार्ट नहीं दिखाते हैं, तो यहां एक तस्वीर है:

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


यह गैर-प्रतिस्पर्धात्मक है क्योंकि इस चुनौती को पोस्ट किए जाने के बाद यूनिकॉर्न बनाया गया था।


1
पृथ्वी पर यहाँ क्या हो रहा है? मुझे बस बक्से दिखाई देते हैं। ; -;
लिन

@Mauris aww :( मैं इस कार्यक्रम की एक छवि पोस्ट करूँगा ताकि हर कोई इसे देख सके
Downgoat

3
LOL ठीक है यह मेरा पसंदीदा है भले ही मैं इसे स्वीकार नहीं कर सकता क्योंकि यह इतना लंबा है।
अश्विन गुप्ता

4
"उम्मीद है कि जावा की तुलना में कम है।" आप उस के लिए +10 लायक हैं;)
ETHproductions

1
@ Do @, आपको निराश करने के लिए क्षमा करें। जावा इससे लगभग 18 गुना छोटा है।
तमोग्ना चौधरी

8

जावास्क्रिप्ट ईएस 6, 45 39 37 * बाइट्स

(q,p)=>[x=p/2+Math.sqrt(p*p/4-q),p-x]

* डेनिस को धन्यवाद!


2
मैं +1 कर रहा हूं क्योंकि यह पहला उत्तर है जिसे मैं वास्तव में समझ सकता हूं (क्रमबद्ध)। LOL
अश्विन गुप्ता

4

टीस्क्रिप्ट, 22 बाइट्स 30 31

[d=y/2+$s(y*y/4-x),y-d

बुरा नहीं है । बहुत छोटा होगा अगर मैं कुछ गोल्फ सुविधाओं को पहले से समाप्त कर सकता था जैसे कि यूनिकॉर्न यूनिकोड शॉर्टकट

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


"गेंडा शॉर्टकट" मुझे उस की आवाज़ पसंद है! ;)
ETHproductions

@ETHproductions हाहा, यह स्वत: सही था: पी हालांकि यूनिकॉर्न शॉर्टकट दिलचस्प हो सकते हैं ...
19

3

MATL , 33 बाइट्स

-100:100t!2$t+i=bb*i=&2#2$1fv101-

दो नंबरों को दो अलग-अलग लाइनों में आउटपुट करता है। यदि कोई समाधान मौजूद नहीं है तो यह कोई आउटपुट नहीं देता है। यदि कई समाधान मौजूद हैं, तो यह केवल एक समाधान के लिए संख्याओं की जोड़ी पैदा करता है।

उदाहरण

संकलक के वर्तमान गिटहब कमिट के साथ ऑक्टेव में निम्नलिखित चलाया गया था ।

>> matl -r '-100:100t!2$t+i=bb*i=&2#2$1fv101-'
> 2
> -63
 9
-7

व्याख्या

-100:100           % row vector -100, -99, ..., 100
t!                 % duplicate and transpose into column vector
2$t                % duplicate the two vectors
+                  % sum with singleton expansion (all combinations)
i=                 % does it equal input? Produces logical matrix
bb                 % move the two vectors to top
*                  % multiply with singleton expansion (all combinations)
i=                 % does it equal input? Produces logical matrix
&                  % logical "and"
2#2$1f             % find row and column of the first "true" value in logical matrix
v101-              % concatenate vertically and subtract 101

जिज्ञासा से बाहर, "स्पष्टीकरण" रूप में कार्यक्रम वास्तव में एक MATL संकलक पर चलेगा? वाक्यविन्यास भयानक रूप से विभाजित है।
अश्विन गुप्ता

हां, आप कार्यक्रम को अलग-अलग लाइनों में पेस्ट कर सकते हैं, उदाहरण के लिए स्पष्टीकरण से लिस्टिंग की प्रतिलिपि बनाना। आप टाइप करें matlऔर "एंटर" दबाएं; फिर प्रोग्राम पेस्ट करें और एक रिक्त रेखा के साथ समाप्त करें। क्या मतलब है कि वाक्यविन्यास भयानक रूप से विभाजित है? MATL रिवर्स पॉलिश (पोस्टफ़िक्स) संकेतन का उपयोग करता है, शायद यह आपको भ्रमित कर रहा है?
लुइस मेंडू

3

जूलिया, 46 44 32 बाइट्स

f(b,c)=(x=b+√(b^2-4c))/2,b-x/2

एक फ़ंक्शन च जो राशि और फिर उत्पाद लेता है।

मेरा पहला जूलिया जवाब। @ एलेक्सा।, आपको मुझ पर गर्व होना चाहिए।

सभी मदद के लिए @Dennis और @Alex A. को धन्यवाद। मुझे 44 को पार करने के लिए मिला।: पी


40 बाइट्स:f(b,c)=b/2+√(b^2/4-c),b/2-√(b^2/4-c)
एलेक्स ए।

@AlexA। - आप इस एक में सुधार का सुझाव देकर एक मेम बनाने जा रहे हैं ...
डारेल हॉफमैन

34 बाइट्स:f(b,c)=b/2+√(x=b^2/4-c),b/2-√x
एलेक्स ए।

32 बाइट्स:f(b,c)=(x=b+√(b^2-4c))/2,b-x/2
डेनिस

2
यह सिर्फ नियमित द्विघात सूत्र की तरह है जो हमारे सिर में पीटा गया है क्योंकि हम बच्चे थे लेकिन वे थे।
एलेक्स ए।

3

डीसी, १६

?ddd*?4*-v+2/p-p

योग राशि तब STDIN की अलग लाइनों से उत्पाद पढ़ता है। -वे नंबर को माइनस साइन के बजाय अंडरस्कोर के साथ दर्ज करना होगा। जैसे

$ { echo 2; echo _63; } | dc -e'?ddd*?4*-v+2/p-p'
9
-7
$ 

स्पष्टीकरण:

के लिए एक ही बुनियादी द्विघात समाधान sum = a + bऔर product = a * b। यह समाधान की गणना aकरता है:

a = [ sum + √( sum² - 4 * product ) ] / 2

और समाधान की गणना bकरता है:

b = sum - a

विस्तारित:

?                   # push sum to stack
 ddd                # duplicate 3 times (total 4 copies)
    *               # sum squared
     ?              # push product to stack
      4*            # multiply by 4
        -           # subtract (4 * product) from (sum squared)
         v          # take square root of (sum squared) - (4 * product)
          +         # add sum to square root of (sum squared) - (4 * product)
           2/       # divide by 2 to give solution a
             p      # print with newline and without pop
              -     # subtract solution a from sum to give solution b
               p    # print with newline and without pop

हानि परिशुद्धता को रोकने के लिए 2 से विभाजित करने पर देर हो जाती है। पहले 2 से विभाजित करना संभव है, लेकिन इसके लिए भिन्नात्मक परिशुद्धता की आवश्यकता होती है जिसे अधिक वर्णों की आवश्यकता होती है।


2
रुको क्या? यह APL, Pyth और CJam से कम समाप्त हुआ ??? वू हू!
डिजिटल ट्रॉमा

3

पायथ, 21 18 बाइट्स

@Dennis के लिए धन्यवाद 3 बाइट्स सहेजे गए

,J/+@-^Q2*4E2Q2-QJ

परीक्षण सूट

मेरा दूसरा पायथ कार्यक्रम कभी, इसलिए इसे शायद बिल्ट-इन के साथ रखा जा सकता है। सुझावों का स्वागत है!

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

,J/+@-^Q2*4E2Q2-QJ   Implicit: Q = first line of input
,                    Create and output a list of these items:
 J                     Set variable J to the result of these operations:
      ^Q2                Square Q.
     -   *4E             Subtract 4*(next line of input).
    @       2            Take the square root.
   +         Q           Add Q.
  /           2          Divide by 2.
                       The list is currently [J].
               -QJ     Push Q-J; the list is now [J, Q-J].
                     EOF; list is sent to output.

(यह स्पष्टीकरण 100% सही नहीं हो सकता है; मैं पायथ से बहुत परिचित नहीं हूँ।)

ध्यान दें कि /पूर्णांक विभाजन है। इसके साथ प्रतिस्थापित करके c, हम इस कार्य को गैर-पूर्णांक इनपुट के साथ भी कर सकते हैं।


आपको एक बाइट से
हराया

यह स्पष्टीकरण 100% सही नहीं हो सकता है ... ???
डिजिटल ट्रामा

@DigitalTrauma मैं 100% निश्चित नहीं हूं कि यह कैसे काम करता है (विशेष रूप से J), लेकिन यह वही है जो मैंने डॉक्स पढ़ने से इकट्ठा किया है।
ETHproductions

1
हां, Jएक ऑटो-असाइनिंग वैरिएबल है और यह पहली बार इस्तेमाल होने पर सेट हो जाता है। एकमात्र हिस्सा जो काफी सही नहीं लगता है वह सूची वर्तमान में [J] है। ,ठीक दो तर्क लेता है और उन्हें एक सूची में जोड़ता है।
डेनिस

3

जावा, 82 (69 λ) द्विघात सूत्र के साथ बाइट्स (127 (114 λ) बाइट्स ब्रूट-फोर्स)

ब्रूट-फोर्स: (वेनिला, जावा 7)

int[] n(int s,int p){for(int a=-100;a<=100;a++)for(int b=-100;b<=100;b++) if(a+b==s&&a*b==p)return new int[]{a,b};return null;}

λ-संवर्धित: (जावा 8)

(s,p)->{for(int a=-100;a<=100;a++)for(int b=-100;b<=100;b++) if(a+b==s&&a*b==p)return new int[]{a,b};return null;}

लैम्ब्डा को असाइन करें java.util.function.BiFunction<Integer, Integer, int[]>और कॉल करें apply()

सादा पुराने जानवर बल दृष्टिकोण। बस कार्यशील फ़ंक्शन यहां है, और चूंकि जावा कई मानों को वापस नहीं कर सकता है, हम intआवश्यक संख्याओं के साथ 2-तत्व सरणी लौटाते हैं ।

पूर्ण ब्रूट-बल दृष्टिकोण आधारित कार्यक्रम ideone.com पर यहां λ संस्करण के साथ पाया जा सकता है।

इसमें शामिल होने से सभी अनावश्यक ब्रेसिज़ को हटाना शामिल है।

Ungolfed:

int[] n(int s,int p){//sum and product as function parameters,in that order
    for(int a=-100;a<=100;a++){//iterate first no. from -100 to 100
        for(int b=-100;b<=100;b++){//iterate second no. from -100 to 100
            //if the 2 nos. satisfy the diamond-puzzle condition, 
            //pack them in an int array and return them
            if(a+b==s&&a*b==p)return new int[]{a,b};}
     }//if no such pair exists, return null
return null;}

द्विघात दृष्टिकोण: (वेनिला, जावा 7)

int[] n(int s,int p){int x=s+(int)Math.sqrt(s*s-4*p);return new int[]{x/2,s-x/2};}

λ-संवर्धित: (जावा 8) (s, p) -> {int x = s + (int) Math.sqrt (s * s-4 * p); नया int लौटाएँ [] {x / 2, sx / 2} ;}

(उपरोक्त बल बल λ के लिए के रूप में उपयोग)।

पैरामीटर और रिटर्न मानदंड ऊपर के जानवर-बल समाधान के समान हैं।

यहाँ लगभग सभी अन्य उत्तरों द्वारा उपयोग किए गए अच्छे पुराने द्विघात सूत्र का उपयोग करता है, और जब तक कोई मुझे यहाँ मदद नहीं करता है, तब तक इसे और नीचे नहीं बढ़ाया जा सकता है। यह बहुत स्पष्ट है इसलिए मैं एक अन-गोल्ड संस्करण को शामिल नहीं कर रहा हूं।

पूर्ण द्विघात दृष्टिकोण आधारित कार्यक्रम ideone.com पर यहां λ संस्करण के साथ है।


आहा हां धन्यवाद। मैं जावा उत्तर की प्रतीक्षा कर रहा था। इसके अलावा, मैं कारकों के साथ छोरों और पाशविक बल के लिए किसी के उपयोग के लिए इंतजार कर रहा था। मुझे लगता है कि मुझे एक डील के लिए दोनों मिल गए। +1
अश्विन गुप्ता

1
जावा ने गेंडा हरा दिया :( I +1। लेकिन मैंने अपनी दैनिक वोट सीमा का उपयोग किया है
Downgoat

2

जाप , 28 22 21 20 बाइट्स

[X=V/2+(V²/4-U ¬V-X]

इनपुट के रूप में बनाया गया है -63 2

स्पष्टीकरण:

  • Uऔर Vदो इनपुट हैं ( -63और 2पहले मामले में)
  • ² वर्गों की संख्या
  • q वर्गमूल निकालता है

मैं इसके लिए एक उत्तर लिख रहा था; वह है, जब तक मैंने तुम्हारा देखा। अच्छा काम! पहले भाग को पुनर्व्यवस्थित करके और कुछ और यूनिकोड शॉर्टकट का उपयोग करके, हम 21 बाइट्स प्राप्त कर सकते हैं: [X=ºV²-4*U ¬+V)/2V-X]शॉर्टकट के बिना: [X=((V²-4*U q +V)/2V-X]मुझे वास्तव ]में अगले संस्करण में अनुगामी को अनावश्यक बनाना चाहिए ...
ETHproductions

@ ईथ ओके, ¬ बहुत अच्छी बात है।
19

2

एपीएल, 27 21 बाइट्स

h(+,-).5*⍨⊣-⍨h×h←.5×⊢

यह एक डाइएडिक फंक्शन ट्रेन है जो दाएं और बाएं पर पूर्णांक को स्वीकार करता है और एक सरणी देता है। इसे कॉल करने के लिए, इसे किसी वैरिएबल पर असाइन करें।

Ungolfed:

                h←.5×⊢       ⍝ Define a train h for halving the input
              h×             ⍝ b^2/4
          ⊣-⍨                ⍝ b^2/4 - c
      .5*⍨                   ⍝ sqrt(b^2/4 - c)
h(+,-)                       ⍝ Return the halved pair

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

डेनिस के लिए धन्यवाद 6 बाइट्स सहेजे गए!


2

सीजेएम, 18 बाइट्स

q~2d/_2#@-mq_2$+p-

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

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

q~                  e# Read an evaluate all input. STACK: product sum
  2d/               e# Divide the sum by 2.0.
     _              e# Push a copy of the result.
      2#            e# Square the copy.
        @-          e# Rotate the product on top and subtract it from the square.
          mq        e# Apply square root.
            _2$     e# Push copies of the root and the halved sum.
               +p   e# Add and print.
                 -  e# Subtract the originals.

2

पायथन 3, 49 44 बाइट्स

वहाँ शायद यह भी आगे नीचे गोल्फ के लिए कुछ तरीके हैं, लेकिन यह बहुत अच्छा लग रहा है।

def f(s,p):s/=2;d=(s*s-p)**.5;return s+d,s-d

अंतर का संकेत गलत है; यह होना चाहिए s/2-d। इसके अलावा, d=(s*s/4-p)**.5कुछ बाइट्स बचाता है।
डेनिस

@ डेनिस उफ़, आप सही कह रहे हैं। फिक्स्ड और गोल्फ।
शर्लक

1

MathCAD 15. 38 बाइट्स

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

गणितीय सूत्र के साथ, MathCAD में प्रोग्रामिंग आसान है। भाषा को आसानी से जटिल संख्याओं को संभालने के लिए डिज़ाइन किया गया है। हालांकि छोटी भाषाएं हैं जो समस्या को हल कर सकती हैं।


1

S, 21 चार्ट / 30 बाइट्स

[x=í/2+√ í²/4-î⦆,í-x]

Try it here (Firefox only).

भावहीन। यह विचार पाने के लिए y'all के लिए पर्याप्त दृश्य होना चाहिए; हालाँकि, यदि आपको चाहिए î = input1, í = input2


0

PHP, 62 बाइट्स

<?=($x=($p=$_GET[p])/2+sqrt($p*$p/4-$q=$_GET[q]))." ".($p-$x);

यह बहुत लंबा हो सकता है लेकिन पूर्ण रूप से चित्रित PHP वेब- "प्रोग्राम" है। "प्राप्त करें" अनुरोध के माध्यम से तर्कों को स्वीकार करता है।

डेमो


0

टीआई-बेसिक, 20 बाइट्स

Qसे Ans, और Pसे लेता है Prompt। जैसे बुलाओ P:prgmNAME

Prompt P
P/2+√(P²/4-Ans
{Ans,P-Ans

बहुत अच्छा। उस Promptबयान के लिए बहुत बुरा होना इतना लंबा लोल। मुझे TI-BASIC का पता नहीं है, लेकिन यदि आप किसी फ़ंक्शन में कोड डालते हैं और P को एक पैरामीटर के रूप में पास करते हैं तो यह कम हो सकता है।
आश्विन गुप्ता

दरअसल, TI-BASIC को "टोकन" में विभाजित किया गया है; से प्रत्येक Prompt , P, /, 2, +, √(, ², 4, -, Ans, और {एक टोकन हैं, और ये टोकन में से हर एक बाइट है। इसके अलावा, TI-BASIC के कार्य नहीं हैं। यह शायद सबसे छोटा तरीका है।
कॉनर ओ'ब्रायन

ओह, यह अच्छी तरह से है कि मुझे पता ही नहीं चला। लेकिन क्या हर चार एक तकनीकी अर्थ में एक बाइट अभी भी नहीं है? जैसे अगर मुझे इसे टेक्स्ट डॉक में पेस्ट करना है, तो मुझे 36 बाइट्स मिलेंगे। या यह विशेष यूनिकोड वर्णों का उपयोग करता है?
अश्विन गुप्ता

TI-BASIC एक कैलकुलेटर भाषा है, इसलिए यह वही है जो देखता है। इसे कैलकुलेटर में रखा जाता है, टेक्स्ट डॉक्यूमेंट या लाइक में नहीं। यहां एक-एक बाइट टोकन हैं।
कॉनर ओ'ब्रायन

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