“कोड की एक पंक्ति लिखे बिना एक साधारण कैलकुलेटर लिखें


25

यह बहुत आसान है:

कोड की एक भी पंक्ति लिखे बिना एक कार्यक्रम बनाएं। कोड में केवल मौजूदा स्टैक ओवरफ्लो प्रश्न और उत्तर शामिल हो सकते हैं।

कार्यक्रम को दो यादृच्छिक संख्याएं बनाने और संख्याओं का उत्पादन करना चाहिए

  • में जोड़ा,
  • इससे छीना गया,
  • के साथ गुणा और
  • द्वारा विभाजित

एक दूसरे।

नियम

आपको अपने उत्तर में उपयोग किए गए प्रश्नों / उत्तरों के लिंक शामिल करने होंगे। आप निम्न अपवादों के साथ, आपके द्वारा पाए गए कोड को संशोधित नहीं कर सकते हैं:

  1. आप चर, कार्यों और विधियों का नाम बदल सकते हैं। (इसका मतलब यह नहीं है कि आप एक विधि मंगलाचरण बदल सकते हैं, बदलकर, Scan.nextInt () से Scan.nextLine () कह सकते हैं और दावा कर रहे हैं कि आप एक विधि नाम बदल रहे हैं। परिवर्तन परिभाषा या संदर्भ में होना चाहिए। एक ही इकाई।)। समाधान अभी भी काम करना चाहिए अगर चर, फ़ंक्शन या विधियों को फिर से नाम दिया जाएगा।

  2. आप उचित रूप से इंडेंटेशन को समायोजित कर सकते हैं।

  3. आप मान सकते हैं कि काम करने के लिए कोड स्निपेट्स के लिए उचित मॉड्यूल लोड किए गए हैं। (जैसे, जावा और पायथन के लिए आयात विवरण, C # और C ++ और सभी भाषाओं में उनके समकक्षों का उपयोग करते हुए) यदि कोड स्निपेट में आपके लिए आयात शामिल हैं, तो आप उन्हें कोड के शीर्ष पर ले जा सकते हैं।

  4. यदि भाषा को निष्पादित करने के लिए कोड को किसी प्रकार की विधि निकाय में होना आवश्यक है (जैसे, public static void main(String[] args)जावा के लिए, static int Main(string[] args)C # के लिए, और इसी तरह), तो आप उचित विधि में अपने कोड को लपेट सकते हैं। लेकिन उस मुख्य विधि की सामग्री को अनमोड होना चाहिए।

  5. आपको किसी भी चर / विधि / फ़ंक्शन / वर्ग के नाम की एक स्पष्ट सूची प्रदान करनी चाहिए।

  6. आप स्निपेट के स्निपेट नहीं ले सकते (मतलब यदि आप किसी पोस्ट से कोड ब्लॉक लेते हैं, तो आप पूरी बात लेते हैं) एक संक्षिप्त विवरण प्रदान करें कि जो लोग आपके द्वारा उपयोग की जा रही भाषा के साथ अंतरंग नहीं हैं उनके लिए कोड क्या करता है। इस चुनौती को शुरू करने से पहले आपको पोस्ट किए गए स्निपेट्स का उपयोग करना होगा।

लोकप्रियता की लड़ाई, इसलिए सबसे ज्यादा जीतता है जीत!

समयसीमा

मैं उस सबमिशन को स्वीकार कर लूँगा जिसमें अगस्त के अंत के आसपास सबसे अधिक वोट हैं, 6।


हाय माइकल, और PPCG स्टैक एक्सचेंज में आपका स्वागत है! इस साइट पर कोड चुनौतियों के लिए नियमों में से एक यह है कि उनके पास एक उद्देश्य जीतने की स्थिति होनी चाहिए, इसलिए आपको इस एक के लिए ऐसी स्थिति चुननी चाहिए। यह एक ऐसी ही चुनौती है जो आपको कुछ विचार दे सकती है।
ईसैक

हाय @ लिसाक, धन्यवाद। मैं इस एक को देखूंगा और हटाऊंगा / संपादित करूंगा।
क्रिस पी बेकन

@isaacg, आशा है कि अब ठीक है। आप यहां मुझसे ज्यादा अनुभवी हैं, क्या समय सीमा भी करीब / दूर है?
क्रिस पी बेकन

यह ज़्यादा बेहतर है। हालांकि समय सीमा बहुत करीब है, मानक लगभग 1-2 सप्ताह है।
ईसैक

ठीक है, फिर से धन्यवाद।
क्रिस पी बेकन

जवाबों:


17

J, 7 प्रश्न / उत्तर, J के बारे में कोई नहीं

echo a%b[echo a*b[echo a-b[echo a+b[b=:?2147483647 [a=:?2147483647

यह एक बहुत ही सस्ता तरीका है इसे करने के लिए, मैं झूठ नहीं बोलने वाला हूं। यहाँ एसओ जवाब मैं इस्तेमाल कर रहे हैं:

मैं चर का नाम बदला fooके रूप में aऔर bकोड में।


मुझे लगता है कि इस दृष्टिकोण को लेना एपीएल में बहुत कठिन होगा, लेकिन कोड ब्लॉक में पात्रों को खोजने का अभी भी एक अच्छा मौका है।
JohnE

1
@ जॉन यह ASCII शोर होने का फायदा है!
घातक

1
मुझे यह उत्तर पसंद है, लेकिन सवाल में कहा गया है कि "आप स्निपेट्स के स्निपेट नहीं ले सकते हैं" - जो यह कर रहा है, है ना?
चाचा

3
@unclemeat "यदि आप किसी पोस्ट से कोड ब्लॉक लेते हैं, तो आप पूरी चीज़ लेते हैं"। मेरे लिए ऐसा लगता है कि अगर किसी पोस्ट में कई कोड ब्लॉक हैं, तो आप सिर्फ एक ले सकते हैं, लेकिन आप एक कोड ब्लॉक का हिस्सा नहीं ले सकते।
घातक

ये सभी पूर्ण कोड ब्लॉक से आते हैं - स्रोतों पर एक नज़र डालें।
सीन लाथम

7

पायथन 2, 7 6 संदर्भ

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

मैंने Ref # 1 के स्थान पर एक अलग उत्तर का उपयोग करते हुए, 2000-बिट यादृच्छिक संख्याओं के साथ ऐसा करने का एक तरीका पाया था, लेकिन मैं इसे उपयोग किए जाने वाले ऑनलाइन वातावरण पर परीक्षण नहीं कर सका getrandbits, जिसमें यह शामिल है , जो os.urandomमुझे एक देता है NotImplementedError; इसलिए मैं इसके बजाय इस तरह से चला गया। यह वास्तव में अब TIO के साथ इस्तेमाल किया जा सकता है।

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

#assumed to be loaded
import random

n1 = []
n1.append(random.randint(1, 100))

n2 = []
n2.append(random.randint(1, 100))

r1 = map(sum, zip(n1, n2))
r2 = map(lambda t: t[0] - t[1] ,zip(n1, n2))

ab = [n1[i]*n2[i] for i in range(len(n1))]

r1, last = r1[0], r1[-1]
r2, last = r2[0], r2[-1]
ab, last = ab[0], ab[-1]
n2, last = n2[0], n2[-1]

print r1
print r2
print ab
ab = float(ab) / n2
ab = float(ab) / n2
print ab

संदर्भ

import random लोड होना माना जाता है, क्योंकि सवाल कहता है कि इसकी अनुमति है।

  1. lst = []और lst.append(random.randint(1, 100))- यहाँ

  2. map(sum, zip(r1, r2)), map(lambda t: t[0] - t[1] ,zip(r1, r2)), r1, और r2- यहाँ

  3. result = float(a) / b- यहाँ

  4. ab = [a[i]*b[i] for i in range(len(a))]- यहाँ

  5. first, last = some_list[0], some_list[-1]- यहाँ

  6. print x- यहाँ

नाम बदलकर

  1. lstनाम दिया n1और n2(Ref # 1: मैं पूरी कोड दो बार इस्तेमाल किया)

  2. r1और r2नाम बदलकर n1और n2(Ref # 2: मैंने बाद में अलग-अलग चरों का उपयोग किया, हालांकि मानचित्रों को असाइन करने और अंतिम प्रिंट में विभाजित करने के लिए, क्योंकि उत्तर में उन्हें शामिल किया गया था।)

  3. resultऔर aनाम दिया abहै, और bनाम दिया n2(# 3 रेफरी)

  4. aऔर bकरने के लिए नाम बदला n1और n2(Ref # 4)

  5. firstऔर some_listदोनों का नाम बदलकर r1, r2, ab, या n2है, जो लाइन पर निर्भर करता है। (Ref # 5: मैंने इसे चार बार इस्तेमाल किया। ध्यान दें कि केवल पहले असाइनमेंट का उपयोग किया जाता है, इसलिए मैं नाम नहीं बदलता last)

  6. xकिस लाइन के आधार पर इसका नाम बदला जाता है r1, r2या ab। (रेफरी # 6)


1

दशमलव , 2 संदर्भ

82D82D00D30001D30041D301212010D301200D30001D30042D301212010D301200D30001D30043D301212010D301200D30001D30044D30122

उपयोग किए गए कमांड:

  • 0 सेट (डिफ़ॉल्ट स्टैक इंडेक्स)
  • 1 धक्का दें
    • 2 CHAR
  • 2 पॉप
  • 3 आई / ओ
    • 00 डुप्लीकेट ढेर
    • 01 स्टैक से STDOUT तक
  • 4 गणित
    • 1 जोड़ें
    • 2 घटाना
    • 3 गुणा
    • 4 DIVIDE
  • 8 BUILTIN
    • 2 स्टैक के लिए यादृच्छिक पूर्णांक धक्का

समझाया संस्करण:

82D       ; push random INT    - stack contains {r1}
82D       ; push random INT    - stack contains {r1, r2}

00D300    ; duplicate stack[0] - stack contains {r1, r2, r1}
01D300    ; duplicate stack[1] - stack contains {r1, r2, r1, r2}
41D       ; math +             - stack contains {r1, r2, r1+r2}
301       ; print from stack to output
2         ; pop                - stack contains {r1, r2}

12010D3012; print newline

00D300    ; duplicate stack[0] - stack contains {r1, r2, r1}
01D300    ; duplicate stack[1] - stack contains {r1, r2, r1, r2}
42D       ; math -             - stack contains {r1, r2, r1-r2}
301       ; print from stack to output
2         ; pop                - stack contains {r1, r2}

12010D3012; print newline

00D300    ; duplicate stack[0] - stack contains {r1, r2, r1}
01D300    ; duplicate stack[1] - stack contains {r1, r2, r1, r2}
43D       ; math *             - stack contains {r1, r2, r1*r2}
301       ; print from stack to output
2         ;                    - stack contains {r1, r2}

12010D3012; print newline

00D300    ; duplicate stack[0] - stack contains {r1, r2, r1}
01D300    ; duplicate stack[1] - stack contains {r1, r2, r1, r2}
44D       ; math /             - stack contains {r1, r2, r1/r2}
301       ; print from stack to output

सूत्रों का कहना है:

इसे ऑनलाइन आज़माएं! यदि यह स्वचालित रूप से अक्षम नहीं है, तो आपको आउटपुट कैश को अक्षम करना होगा।

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