सिगमफी अभिव्यक्ति


20

जो लोग नहीं जानते थे, उनके लिए सिग्मा एक ग्रीक अक्षर है जो गणित में योग के संकेत के रूप में बहुत अधिक उपयोग किया जाता है। एक स्ट्रिंग के आधार पर एक अभिव्यक्ति का प्रतिनिधित्व करने को देखते हुए है कि हम निरूपित होगा ( कश्मीर ) , के लिए परिणाम की राशि की गणना ( कश्मीर ) , प्रत्येक के लिए कश्मीर { 1 , 2 , 3 , 4 , 5 } । चिंता की बात है, आपको एस को ऐसे खोजना चाहिए :कश्मीर(कश्मीर)(कश्मीर)कश्मीर{1,2,3,4,5}एस

एस=Σकश्मीर=15(कश्मीर)

एक अभिव्यक्ति का एक उदाहरण: (कश्मीर)=कश्मीर2+कश्मीर2


चश्मा

  • आपको गारंटी दी जाती है:
    • यह अभिव्यक्ति मान्य है, इसलिए इसमें कोई त्रुटि नहीं है, और यह चयनित सिंटैक्स पर निर्भर है (जैसे: यदि आप केवल समर्थन करते हैं 2*k, तो कोई भी नहीं होगा 2k)
    • केवल आपके परिणामों के बीच मानों को परिभाषित किया है, इसलिए जैसे कोई मूल्य 1/0, infया nanदिखाई नहीं देंगे
  • आप मान सकते हैं कि ऊपर की अभिव्यक्ति आपकी पसंद की प्रोग्रामिंग भाषा की सीमा को उपयुक्त कर रही है, इसलिए इसका परिणाम अधिक या किसी अन्य सीमा-संबंधी त्रुटियों से नहीं होगा।
  • किसी भी अन्य गैर-व्हाट्सएप ASCII चरित्र के बजाय kचुना जा सकता है
  • आपके कार्यक्रम को निम्नलिखित कार्यों का समर्थन करना चाहिए :
    • इसके अलावा ( +, plus(), add(), sum())
    • घटाव ( -, minus(), subtract())
    • घातांक ( **, ^, pow()या दूसरों, निर्दिष्ट किया जाना चाहिए), नकारात्मक ठिकानों और घातांक के समर्थन के साथ
    • के रूप में वर्गमूल sqrt(k), k^0.5, k**0.5, या फिर भी किसी और आप चाहते हैं
    • गुणन और भाग
  • इसके उपयोग का उल्लेख करते हुए, सबमिशन या तो एक पूर्ण कार्यक्रम या फ़ंक्शन हो सकता है
  • आउटपुट करते समय किसी भी अनुगामी / अग्रणी व्हाट्सएप की अनुमति है
  • न्यूनतम सटीकता: 2 दशमलव स्थान

परीक्षण मामले (साथ k)

+---------------+--------------+   
|  Input = E(k) |    Output    |
|---------------+--------------|
|2*k            | 30           |
|---------------+--------------|
|sqrt(k)        | 8.38         | (* with minimum decimal precision)
|---------------+--------------|
|k+k/2+k**2     | 77.5         |
|---------------+--------------|
|k**2           | 55           |
+---------------+--------------+

स्कोर बाइट्स की संख्या होगी (स्रोत + संकलक झंडे की)। सबसे कम स्कोरिंग मान्य सबमिशन जीतता है, जबकि ध्यान दें कि इन खामियों को सख्ती से मना किया जाता है। यहां पाइथन छद्म कोड है, चीजों को स्पष्ट करने के लिए।


क्या हम plus()इसके बदले ले सकते हैं +? (अन्य सभी संचालकों के लिए भी समान प्रश्न)
स्टीवी ग्रिफिन

@StewieGriffin हाँ, plus(), add(), sum()और समकक्ष की अनुमति है। संपादन देखें।
श्री एक्सकोडर

नहीं, आप केवल एक बार अभिव्यक्ति ले सकते हैं, @ComradeSparklePony
श्री एक्सकोडर

क्या हम पोस्टफिक्स नोटेशन का उपयोग कर सकते हैं? उदाहरण के लिए, ऊपर से टेस्ट केस 3 कुछ इस तरह होगा N N2/+N2**+:।
कॉमरेड स्पार्कलेपनी

यह बहुत अजीब है, लेकिन इसे तब तक अनुमति दी जाती है जब तक आप E(x)@ComradeSparklePony के "प्रारूप" को स्पष्ट रूप से बता देते हैं
श्री Xcoder

जवाबों:


3

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

vЀ5S

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

एक वैध जेली मोनैडिक श्रृंखला इनपुट करें (मैंने अपने लिंक में उन्हें नीचे गिरा दिया)।

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

vЀ5S
 Ѐ     for each of ...
   5        5 (implicitly converted to [1,2,3,4,5]), ...
v           evaluate the input with the above as argument
    S   and find the sum

9

मेथेमेटिका, 17 14 13 बाइट्स

3 बाइट बचाने के लिए इयान मिलर को धन्यवाद।

1 बाइट बचाने के लिए LegionMammal978 का धन्यवाद।

#~NSum~{k,5}&

इनपुट में वास्तविक अभिव्यक्ति होनी चाहिए k, जैसे:

#~NSum~{k,5}&[Sqrt[k]^3+4]

2
मुझे अनुमान लगाना चाहिए था कि गणितज्ञ ने इसके लिए निर्माण किया था
श्री एक्सकोडर

2
गणितज्ञों ने हमेशा स्थितियों के लिए अंतर्निहित निर्माण किया है। : पी
पूरी तरह से

आप की जरूरत नहीं है 1,के लिए उस में Sum
इयान मिलर

वास्तव में यह छोटा हो सकता हैN@#~Sum~{k,5}&
इयान मिलर

@IanMiller ओह सही, बिल्कुल। धन्यवाद!
मार्टिन एंडर

8

पायथन 3 , 40 37 बाइट्स

3 बाइट्स अरनौल्ड की बदौलत।

एवल स्कोप ट्रिक्स \ o /

f=lambda s,k=5:k and eval(s)+f(s,k-1)

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

के k**0.5बजाय का उपयोग करता है sqrt(k)


यह एक सवाल है कि तेजी से जवाब देने की अनुमति है? o_O
मिस्टर एक्सकोडर

7

जावास्क्रिप्ट (ईएस 7), 31 30 बाइट्स

के लिए उपयोग करता k**0.5है sqrt(k)

f=(e,k=6)=>--k&&f(e,k)+eval(e)

console.log(f("2*k"))
console.log(f("k**0.5"))
console.log(f("k+k/2+k**2"))
console.log(f("k**2"))

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


निंजा फिर से! अच्छी तरह से किया।
झबरा

3

05AB1E , 8 7 6 बाइट्स

6G¹.VO

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

इनपुट पोस्टफिक्स नोटेशन में है, और वेरिएबल एन का उपयोग करता है । 05AB1E एक स्टैक-आधारित भाषा है, इसलिए केवल पोस्टफ़िक्स संकेतन काम करता है।

का प्रारूप E(N): उस संख्या को लिखें जिसे आप ऑपरेशन के साथ करना चाहते हैं, और फिर ऑपरेशन का संकेत लिखें। उदाहरण के लिए, 3+4होगा 3 4+, 3*4+2*3होगा 3 4* 2 3* +। यह भी ध्यान दें कि यह उपयोग करता हैt है sqrt, और mइसके बजाय **, ऐसा sqrt(N)ही होगा Nt

स्पष्टीकरण:

6G¹.VO
6G     For N in range(1,6). This includes [1,2,3,4,5].
  ¹.V  Read and eval input.
     O Sum results.

3

ऑक्टेव , 50 46 31 29 बाइट्स

@(d)eval(["k=1:5;sum(" d 41])

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

कार्यवाहक के साथ घातांक को दर्शाया जाता है .^ और गुणन के साथ निरूपित किया जाता है .*

यह एक अनाम फ़ंक्शन की घोषणा करता है जो तर्क में लेता है d। यह kसीमा के बराबर होता है 1:5और मूल्यांकन किए गए रकम को dवापस कर देता है।


3

जाप , 10 बाइट्स

6ÆK=XOxUÃx

इनपुट स्ट्रिंग में अपरकेस के रूप में परिवर्तनशील होना चाहिए Ksqrt(K)के रूप में इनपुट किया जाना चाहिएK**0.5

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

व्याख्या

evalगुंजाइश मेरे पक्ष में काम नहीं किया; Xएक वैश्विक के रूप में गिनती चर को फिर से परिभाषित करना था K

6ÆK=XOxUÃx      // implicit: U = input string
6oXYZ{K=XOxU} x // expanded

6oXYZ{      }   // create array [0, 6) and map to function:
      K=X       //   redefine the array value to global K
         OxU    //   eval the input string
              x // sum the resulting array

हम्म, मुझे आश्चर्य है कि अगर Oxसीधे ट्रांसप्लिंग करने से eval(मदद मिलेगी ...
ETHproductions


2

एपीएल (डायलॉग) , 9 बाइट्स

+/⍎⎕⊣k←⍳5

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

जोड़ है +, घटाव है -, गुणा है ×, विभाजन ÷घातांक है *और निष्पादन दाएं से बाएं है, इसलिए उपयोग करें() समूह अभिव्यक्तियों का करें।

इनपुट के संदर्भ में है k

व्याख्या

k←⍳5                    Set k to be equal to the vector 1 2 3 4 5
                       The left argument:
+/                      Sum of
⍎⎕                      The evaluated input (the eval returns an array because k is an array)

और यहाँ एक समाधान है जो ट्रेनों को इनपुट के रूप में लेता है (जैसे जेली उत्तर) +/(⍎⎕)¨⍳5:।


2

आम लिस्प, 55 बाइट्स

(defun f(x)#.(read))(print(+(f 1)(f 2)(f 3)(f 4)(f 5)))

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

Example input - output: 
(* x 2) - 30 
(sqrt x) - 8.382333 
(+ (/ x 2) x (expt x 2)) - 155/2 
(expt x 2) - 55

अलग, लंबा (58 बाइट्स) संस्करण - यदि आप 1 से 7 तक योग करते हैं तो कम होने लगते हैं।

(print #.`(+,@(mapcar #'(lambda(x)#.(read))'(1 2 3 4 5))))

अभी तक एक और लंबी विधि ( 65 64 बाइट्स) - फ़ंक्शन को परिभाषित नहीं करता है - बस अपनी अभिव्यक्ति को लूप में सम्मिलित करता है। बड़ी रकम के लिए छोटा होना चाहिए।

(setf a(read)b 0)(loop as x from 1 to 5 do(incf b #.a))(print b)

2

स्विफ्ट, 202 184 बाइट्स

import Foundation;func s(i:String){print([1,2,3,4,5].map{NSExpression(format:i.replacingOccurrences(of:"k",with:"\($0).0")).expressionValue(with:nil,context:nil)as!Float}.reduce(0,+))}

किसी कारण से यह केवल स्थानीय रूप से चलेगा :(

यहाँ मैं क्या कर रहा हूँ की एक व्याख्या है:

import Foundation // Import the Foundation module

func s(i:String){ // Create a function that takes in a String and returns a Float

    print( // Print the result of the follow algorithm to strdout

        [1,2,3,4,5].map{ //Conduct the follow code on numbers 1 - 5

            NSExpression(format: // Create an expression with the following String and return it 

            i.replacingOccurrences(of:"k",with:"\($0).0")) // Create a string replacing all ocurrances of 'k' in `i` with the current Float from the map

           .expressionValue(with:nil,context:nil)as!Float // Get the resulting value of the expression

       }.reduce(0,+) // Add the result of all the expressions together
    )
}

@Mr को धन्यवाद। 15 बाइट बचाने के लिए एक्सकोडर!


2

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

Σ(expr(Ans),K,1,5

के साथ कॉल करें "string":prgmNAME, जहां stringकोई भी मान्य TI-Basic अभिव्यक्ति है K


एक ही लंबाई का दिलचस्प समाधान:Ans->u:sum(u(1,5
lirtosiast

1

स्टैक्ड , 16 बाइट्स

5~>[@k#~]2/"!sum

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

5~>1 से 5 तक की सीमा है। 2/एक मजेदार डायडिक बनाता है, "जोड़ीदार है, और !निष्पादित होता है। यह इस प्रकार [1, 5]इनपुट के साथ रेंज को मैप करता है , जो तब होने वाले रेंज सदस्य को परिभाषित करने के बाद मूल्यांकन किया जाता है k। फिर, परिणाम संक्षेप हैं।


1

डीसी , 31 24 बाइट्स

?sa1k[lax+Kd1+k5>p]dspxp

इनपुट को रिवर्स-पोलिश नोटेशन (जिसे पोस्टफिक्स नोटेशन के रूप में भी जाना जाता है) और स्क्वायर ब्रैकेट्स में संलग्न होना चाहिए ( []):

  • Kkपैरामीटर के रूप में प्रतिस्थापित करना;
  • + जोड़ का प्रतिनिधित्व करना;
  • -घटाव का प्रतिनिधित्व करना और _उसके बाद किसी भी संख्या को ऋणात्मक संख्या का प्रतिनिधित्व करना;
  • * गुणन का प्रतिनिधित्व करना;
  • / विभाजन का प्रतिनिधित्व करना;
  • ^ घातांक का प्रतिनिधित्व करना;
  • v वर्ग-मूल का प्रतिनिधित्व करना।

उदाहरण के लिए, -2*k+k+3*k**2+k**0.5-k/2इनपुट के रूप में होगा [_2K*K+K2^3*+Kv+K2/-]। यह इस तथ्य का उचित लाभ उठाता है कि Kएक dcकमांड है जो वर्तमान परिशुद्धता (शुरू में सेट 1) को वापस करता है। इसलिए, अंत तक, यह आउटपुट को सटीक रूप से देता है6

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



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