प्लस या माइनस पॉलीग्लॉट्स!


14

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

12
5
7
2

एक भाषा में, इसका आउटपुट होना चाहिए 26, और दूसरे में इसका आउटपुट होना चाहिए -2। ध्यान दें कि इनपुट किए गए सभी नंबर सकारात्मक पूर्णांक से कम होंगे 10020उपलब्ध कराए गए अंकों से अधिक कभी नहीं होगा , इसलिए आप कभी भी इससे अधिक 2000या उससे कम उत्पादन नहीं करेंगे -1899। कोई सवाल? नीचे टिप्पणी करें!


क्या आउटपुट में व्हॉट्सएप की अनुमति है?
बिजनेस कैट

क्या एक ही भाषा के दो अलग-अलग संस्करणों की अनुमति है? देखें HyperNeutrino द्वारा अजगर 2/3 उत्तर
श्री Xcoder

@ Mr.Xcoder को इसकी अनुमति है।
प्रोग्रामर

2
@BetaDecay आपको लगता है कि यह एक समस्या है, कोड-गोल्फ देखें!
प्रोग्रामर

1
@ प्रोग्रामर 5000 आपका मतलब है [code-golf] -[polyglot]?
एरिक आउटगोल्फर

जवाबों:


14

जेली / 05AB1E , 3 बाइट्स

00000000: c6 71 53                                         .qS

यह प्रस्तुत कार्यक्रम का एक हेक्सडंप (xxd) है।

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

जेली: सुम

जेली जेली कोड पृष्ठ का उपयोग करता है , इसलिए यह निम्नलिखित वर्णों को देखता है।

İqS

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

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

İqS  Main link. Argument: A (array)

İ    (ignored)
 q   Unrecognized token. This breaks the link; nothing to the left is executed.
  S  Take the sum of A.

05AB1E: अंतर

05AB1E Windows-1252 का उपयोग करता है , इसलिए यह निम्नलिखित वर्णों को देखता है।

ÆqS

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

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

Æ     Take the difference of the input.
 q    Quit.
  S   (ignored)

22

पायथन 2/3, 52 बाइट्स

lambda l:sum(l[:1]+[x*int(1-(1/2)*4)for x in l[1:]])

int(1-(1/2)*4)1पाइथन 2 में वापसी , क्योंकि 1/2पहले 0और उसके बाद का मूल्यांकन करता है 0 * 4 = 0

int(1-(1/2)*4)-1पाइथन 3 में वापसी क्योंकि 1/2पहले 0.5और बाद में मूल्यांकन किया जाता है int(0.5 * 4) = int(2.0) = 2


1
क्या एक ही भाषा का उपयोग करना, अन्य संस्करणों के साथ भी अनुमति है?
श्री एक्सकोडर

3
@ Mr.Xcoder मुझे दिखाई नहीं देता क्यों नहीं, मैंने सी, जावा, पायथन और बेफिक्रे के विभिन्न संस्करणों का उपयोग करके अन्य भाषाओं को देखा है। हालांकि मैं मेटा पर पूछूंगा या देखूंगा कि क्या मैं संबंधित मेटा पोस्ट पा सकता हूं।
हाइपरनेत्रिनो

संस्करण परिवर्तन के कारण गणित की चाल का अच्छा उपयोग, यद्यपि।
श्री एक्सकोडर

1
@ Mr.Xcoder धन्यवाद! मैंने यहाँ मेटा पर सवाल पूछा है ; मुझे उम्मीद है कि जल्द ही जवाब मिल जाएगा।
HyperNeutrino

1
@ प्रोग्रामर 5000 इंटेगर डिवीजन।
हाइपरनेत्रिनो

14

सी और सी ++ (दोनों जीसीसी से), 81 75 73 बाइट्स

int c;int f(int*a,int l){auto d=.5;c=*a++;for(;--l;a++)c+=*a-4*d**a;c=c;}

सरणी और लंबाई के लिए एक सूचक लेता है।

स्पष्टीकरण: अभी भी @Steadybox 'स्पष्टीकरण का उपयोग कर रहा है: p In C, auto d=.5ऑटो स्टोरेज क्लास (जो डिफ़ॉल्ट है) के साथ एक पूर्णांक चर की घोषणा करता है, जिसे तब 0 से प्रारंभ किया जाता है, जबकि C ++ 11 में यह एक डबल घोषित करता है, जिसे प्रारंभ किया गया है 0.5 से।

सी - प्लस भाषा: इसे ऑनलाइन आज़माएं!

C ++ - माइनस भाषा: इसे ऑनलाइन आज़माएं!


11

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

00000000: 4f71 7f5f 2f                             Oq._/

इसे ऑनलाइन आज़माएं! (05AB1E)
इसे ऑनलाइन आज़माएं! (जेली)

05AB1E देखता है :

OQ? _ /
स्पष्टीकरण:

Oq? _ / 1 निहित तर्क।
ओ पहली इनपुट आइटम का योग लें।
 q छोड़ो।
  ?_/ कार्यशील नहीं।

जेली देखता है :

OQ
_ /
स्पष्टीकरण:

_ / मुख्य लिंक। तर्क: z
_ / क्रम में z के तत्वों को घटाएँ।

ऑक हेल्पर लिंक। कार्यशील नहीं।

क्या यह जेली कोडपेज का उपयोग करता है?
प्रोग्रामर

@ programmer5000 यह एक कच्चा बाईट्रीम है जो 05AB1E के लिए CP-1252 और Jelly के लिए JELLY का उपयोग करता है। इसलिए 7f
एरिक आउटगॉल्फ

ओह, यह एहसास नहीं था!
प्रोग्रामर

8

वास्तव में / जेली , 4 बाइट्स

00000000: e4 81 5f 2f                                      .._/

यह प्रस्तुत कार्यक्रम का एक हेक्सडंप (xxd) है। इसे कच्चे रूप में ऑनलाइन परीक्षण नहीं किया जा सकता है; TIO CP437 एन्कोडिंग का समर्थन नहीं करता है।

वस्तुत: सुम

वास्तव में CP 437 का उपयोग करता है , इसलिए यह निम्नलिखित वर्णों को देखता है।

Σü_/

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

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

Σ     Take the sum on the input.
 ü    Print and empty the stack.
  _   Natural logarithm. Ignored since the stack is empty.
   /  Float division. Ignored since the stack is empty.

जेली: अंतर

जेली जेली कोड पृष्ठ का उपयोग करता है , इसलिए यह निम्नलिखित वर्णों को देखता है।

ỵ¹_/

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

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

ỵ¹_/  Main link. Argument: A (array)

ỵ     Unrecognized token. Splits the link.
 ¹    Identity; yield A.
  _/  Reduce (/) A by subtraction (_).

मैंने पढ़ा कि actually, Jelly.:) के रूप में
प्रोग्रामर

आपने इस तथ्य का दुरुपयोग किया है कि एक अपरिभाषित चरित्र :) की तरह काम करता है
एरिक द आउटगॉल्फ

1
@EriktheOutgolfer कम या ज्यादा। पूरी तरह से ईमानदार होने के लिए, मुझे बिल्कुल यकीन नहीं है कि गैर-मान्यता प्राप्त टोकन क्या करते हैं।
डेनिस

दूसरे विचार पर, मुझे लगता है कि आपने अभी-अभी वास्तव में सिर्फ इसलिए चुना क्योंकि इसे üसही कार्य> _> को सौंपा गया है
एरिक द आउटगेलफर

@ प्रोग्रामर 5000 jelly, actually
अर्जुन

8

पायथन 2 और 3, 44 41 बाइट्स

lambda l:eval(l.replace(' ','-+'[1/2>0]))

अंतरिक्ष-पृथक संख्याएँ लेता है।


-3 बाइट्स @JonathanAllan को धन्यवाद

इसे ऑनलाइन आज़माएं: पायथन 2 (माइनस) पायथन 3 (प्लस)


1
'-+'[1/2>0]तीन बाइट बचाने के लिए उपयोग करें ।
जोनाथन एलन

7

सीजाम / जेली , 6 बाइट्स

q~:-
S

CJam

q~    e# Read a list from input
:-    e# Reduce by subtraction
S     e# Push a space
      e# Implicit output

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

जेली

(यूटीएफ -8 का उपयोग करके, जेली कोड पेज नहीं)

q~:-सहायक लिंक है। चूंकि यह बुलाया नहीं जाता है, यह वास्तव में कोई फर्क नहीं पड़ता कि यह क्या करता है। Sकिसी सरणी की राशि की गणना करता है।

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


5
जाम और जेली। दो समान चीजों का एक साथ उपयोग करने के लिए समझदारी है।
mbomb007

1
यह अमान्य है। जेली में 0x7f न्यूलाइन के लिए है, इसमें न्यूएक्सलाइन के लिए 0x0a है। जेली में, यह वास्तव में जैसा है q~:-½S। दुर्भाग्य से, फिक्स ( q~:-e#\x7fS) बड़ा है। इसे ऑनलाइन आज़माएं! (CJam) और इसे ऑनलाइन आज़माएं! , प्रत्येक अपने स्वयं के लिए परीक्षण करने के लिए अपने स्वयं के एन्कोडिंग के साथ।
आउटगोल्फर

2
वैकल्पिक रूप से, आप जेली के लिए UTF-8 एन्कोडिंग का उपयोग कर सकते हैं, जो इसे वर्तमान में जैसा है वैसा मान्य बनाता है, लेकिन कृपया इसे निर्दिष्ट करें।
एरिक आउटगॉल्फ

5

जावास्क्रिप्ट / क्यूबिक्स, 36 बाइट्स

//.!v+u;$I^@O<.Iu
a=>eval(a.join`-`)

कोशिश करो!

नीचे दिए गए स्निपेट का उपयोग करके जावास्क्रिप्ट फ़ंक्शन का परीक्षण किया जा सकता है, यहां क्यूबिक्स कार्यक्रम का परीक्षण किया जा सकता है

यह कैसे काम करता है?

जावास्क्रिप्ट

पहली पंक्ति जावास्क्रिप्ट के लिए एक पंक्ति टिप्पणी है, क्योंकि यह दो स्लैश के साथ शुरू होती है, इसलिए जावास्क्रिप्ट केवल नीचे की रेखा ( a=>eval(a.join`-`)) को देखता है , जो इनपुट के रूप में एक सरणी लेता है, इसे माइनस साइन इनबेटन के साथ जोड़ता है, और फिर कोड के रूप में चलाता है, जिसके परिणामस्वरूप सरणी में सभी तत्वों का घटाव।

let f=
//.!v+u;$I^@O<.Iu
a=>eval(a.join`-`)

console.log(f([1,2,3,4,5]))
console.log(f([3,1,4,1,5]))

Cubix

क्यूबिक्स निम्नलिखित घन को देखता है (ध्यान दें कि क्यूबिक्स सभी व्हाट्सएप को अनदेखा करता है):

      / / .
      ! v +
      u ; $
I ^ @ O < . I u a = > e
v a l ( a . j o i n ` -
` ) . . . . . . . . . .
      . . .
      . . .
      . . .

शुरुवात

आईपी ​​पूर्व की ओर इशारा करते हुए तीसरी लाइन पर शुरू होता है। यह 'I'कमांड को हिट करता है , जो इनपुट से एक नंबर लेता है, और इसे स्टैक पर धकेलता है। फिर, इसे '^'योग-लूप में पुनर्निर्देशित किया जाता है।

योग लूप

मैंने सभी पात्रों को योग लूप का हिस्सा नहीं निकाला, और उन्हें बिना ऑप्स ( '.') द्वारा प्रतिस्थापित किया । आईपी ​​दूसरी ओर पूर्व की ओर इशारा करते हुए दूसरी पंक्ति में आता है।

      . . .
      ! v +
      u ; $
. . . . . . I u . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
      . . .
      . . .
      . . .

सबसे पहले, '!'कमांड शीर्ष तत्व की जांच करता है। यदि वह है 0(यानी हम इनपुट के अंत तक पहुंच गए हैं), तो अगले निर्देश ( 'v') को निष्पादित किया जाता है, आईपी को लूप से बाहर दर्शाता है। यदि हम अभी तक इनपुट के अंत तक नहीं पहुंचे हैं, तो हम शीर्ष दो वस्तुओं को एक साथ जोड़ते हैं ( '+', दूसरा आइटम उस बिंदु तक योग है, शीर्ष आइटम नया इनपुट)। फिर, IP 'u'वर्ण में क्यूब के दूसरे चेहरे को लपेटता है , जिसके कारण 'I'उत्तर को इंगित करते हुए IP एक U- टर्न बनाता है, और एक कमांड निष्पादित करता है (दूसरा इनपुट पूर्णांक पढ़ें)। आईपी ​​शीर्ष चेहरे पर वापस लपेटता है, '$'हटाता है ( ';') हटाएं निर्देश ( ) और एक और यू-टर्न बनाता है, जिस बिंदु पर हमने शुरू किया था।

समाप्त

यदि IP लूप से परिलक्षित होता है, तो निम्न वर्ण निष्पादित होते हैं:

      . . .
      . v .
      . ; .
. . @ O < . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
      . . .
      . . .
      . . .

ये निर्देश शीर्ष तत्व (जो शून्य है) को हटाते हैं, और फिर पूर्णांक के रूप में शीर्ष तत्व (योग) का उत्पादन करते हैं। फिर '@'कमांड पहुंच जाता है, इसलिए प्रोग्राम समाप्त हो जाता है।


4

पायथन 2 और 3, 33 बाइट्स

lambda l,*r:l+sum(r)*(1/2>0 or-1)

इनपुट को अलग पैरामीटर के रूप में लेता है।


अजगर 2.
अजगर 3।


lambda l,*r:l+sum(r)*(1/2-.5)*231 बाइट्स के लिए
Ovs

@ovs मैं उद्देश्य से एक फ्लोट लौटने से बचा। यदि आपको अनुमति है, तो *(1/2*4-1)आपकी तुलना में बाइट कम है।
विड्राक

मुझे लगता है कि वापसी प्रकार वास्तव में मायने नहीं रखता है जब तक कि मूल्य सही न हो
Ovs

4

जेएस (ईएस 6), सीजीएल (सीजीएल गोल्फिंग भाषा) , 32 26 बाइट्स

 x=>eval(x.join`-`)
//-⨥

JS घटाव करता है और CGL जोड़ देता है।

जे एस:

x=>eval(x.join`-`)

एक अनाम फ़ंक्शन जो उपयोग करने वाले सरणी में प्रत्येक तत्व को घटाता है Array#reduce

//-⨥

एक टिप्पणी।

CGL

 x=>eval(x.join`-`)

पहली पंक्ति पर एक स्थान जैसा दिखता है वास्तव में एक गैर-तोड़ने वाली जगह है, सीजीएल में एक टिप्पणी। पहली पंक्ति को अनदेखा किया जाता है।

//-⨥

/कुछ भी नहीं है। -वर्तमान ढेर सूचक decrements तो यह इनपुट की ओर इशारा करते है। वर्तमान स्टैक (इनपुट) को एक साथ जोड़ता है, जो अगले स्टैक पर धकेलता है, और वर्तमान स्टैक को बढ़ाता है। यह अनुमानित रूप से आउटपुट है।


1
x=>eval(x.join`-`)5B
ल्यूक


@ आप सही हैं। फिक्स्ड।
प्रोग्रामर

4

जावास्क्रिप्ट (ES6) / QBasic, 84 83 बाइट्स

'';f=x=>eval(x.join`+`)/*
INPUT a
FOR i=1 TO 2
i=0
INPUT n
a=a-n
PRINT a
NEXT i
'*/

टिप्पणी हैक के साथ एक और समाधान!

जावास्क्रिप्ट योग की गणना करता है। यह एक सरणी में इनपुट के रूप में संख्याएं लेता है। फ़ंक्शन के रूप में आउटपुट return। आप फ़ंक्शन को कॉल कर सकते हैं जैसे alert(f([10,20,30]))

QBasic अंतर की गणना करता है। बार-बार इनपुट मांगता है। जैसे ही आप एक मूल्य दर्ज करते हैं, यह आपके द्वारा दर्ज किए गए सभी नंबरों के अंतर को आउटपुट करता है Enterऔर टकराने का समय फिर से इनपुट के लिए पूछता है। सब कुछ खत्म होने तक वही करता रहता है।


यह कैसे काम करता है?

QBasic (संरचित BASIC परिवार की भाषा में; इसमें पंक्ति संख्या की आवश्यकता नहीं होती है), 'एक टिप्पणी की शुरुआत को चिह्नित करता है जो पंक्ति के अंत तक जाती है। जबकि जावास्क्रिप्ट में, यह एक स्ट्रिंग की शुरुआत को चिह्नित करता है। तो, पूरी पहली पंक्ति QBasic में एक टिप्पणी के रूप में चिह्नित की गई है, लेकिन जावास्क्रिप्ट में, लाइन निष्पादित की जाती है (और इस लाइन में जावास्क्रिप्ट भाग होता है जो संख्याओं के साथ-साथ /*अंत में भी शामिल होता है जो बाकी को छिपाने के लिए एक टिप्पणी शुरू करता है। जावास्क्रिप्ट दुभाषिया से QBasic कोड की।)

दूसरी पंक्ति से दूसरी-अंतिम पंक्ति के कोड में सभी इनपुट संख्याओं के अंतर की गणना करने के लिए QBasic कोड होता है (कोड बहुत स्व-व्याख्यात्मक होता है)।

अंतिम पंक्ति में सम्‍मिलित है '*/'QBasic दुभाषिया के कारण निम्न कोड को एक टिप्पणी के रूप में व्याख्या करता है, जबकि जावास्क्रिप्ट में, इसका कोई प्रभाव नहीं पड़ता है क्योंकि यह एक टिप्पणी का एक हिस्सा है (जो पहली पंक्ति के अंत में शुरू किया गया था)। निम्न कोड ( */) जावास्क्रिप्ट का कारण बनता है जो उस टिप्पणी को समाप्त करता है जिसे पहली पंक्ति में शुरू किया गया था, लेकिन इसे QBasic में निष्पादित नहीं किया गया है क्योंकि QBasic को लगता है कि यह एक टिप्पणी का एक हिस्सा है।


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

जावास्क्रिप्ट (कहते हैं):

'';f=x=>eval(x.join`+`);/*
INPUT a
FOR i=1 TO 2
i=0
INPUT n
a=a-n
PRINT a
NEXT i
'*/
console.log(f([12,5,7,2]));

QBasic (घटाव):

इस वेबसाइट पर जाएं । निम्नलिखित कोड को उनके टेक्स्ट-एडिटर में कॉपी पेस्ट करें:

1 '';f=x=>eval(x.join`+`);/*
2 INPUT a
3 FOR i=1 TO 2
4 i=0
5 INPUT n
6 a=a-n
7 PRINT a
8 NEXT i
9 '*/

लाइन नंबर की आवश्यकता क्यों है इसका कारण यह है कि जिस वेबसाइट का मैंने उल्लेख किया है वह केवल असंरचित बुनियादी भाषाओं का समर्थन करती है। और वह वेबसाइट केवल सभ्य ऑनलाइन बुनियादी व्याख्याकार है जो मुझे मिल सकती है। हालांकि, पोस्ट के शीर्ष में मौजूद कोड को चलाने (लाइन नंबर के बिना कोड) को किसी भी अच्छे QBasic दुभाषिया में ठीक काम करना चाहिए जो संरचित BASIC का समर्थन करता है और 'टिप्पणी-स्टार्टर के रूप में (कुछ ऐसा नहीं करते हैं, हालांकि, ज्यादातर)।


टिप्पणियाँ

  • यह मेरा पहला पद है! मुझे आशा है कि यह एक अच्छा है!
  • कोड के QBasic भाग की आवश्यकता नहीं है ENDक्योंकि दुभाषिया कभी नहीं पहुंचेगा! (यह अनंत लूप में हमेशा के लिए फंस जाएगा। हमेशा अधिक इनपुट के लिए पूछ रहा है।)

3

ब्रेन-फ्लैक / ब्रेन-फ्ल्यू , 20 बाइट्स

({}<([({{}})]){}>{})

इसे ऑनलाइन आज़माएं! (ब्रेन-फ्लैक) (प्लस)

इसे ऑनलाइन आज़माएं! (ब्रेन-फ्ल्यू) (माइनस)

व्याख्या

ब्रेन-फ्लैक और ब्रेन-फ्ल्यू के बीच एकमात्र अंतर यह है कि ब्रेन-फ्लेयू ब्रेन-फ्लैक में उपयोग किए जाने वाले दो स्टैक्स (पहले आउट में) को दो कतारों (पहले आउट में) के साथ बदल देता है। स्वाभाविक रूप से यह कार्यक्रम इस अंतर का उपयोग करता है।

एनोटेट कोड

(                  ) Push the sum of...
 {}                   the first input,
   <            >     zero,
                 {}   the remaining sum (see below)
    ([      ])       Push the of below line
      ({{}})         Pop all the input sans first, push the sum
              {}     Pop (in Brain-Flak, this discards the negative sum,
                            in Brain-Flueue, the positive)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.