सार सिंटेक्स ट्री गोल्फिंग: फ़िज़बज़, पायथन


12

सारांश

पायथन में फ़िज़बज़ को लागू करें, सबसे कम संभव टोकन के साथ।

चुनौती

एक प्रोग्राम लिखें जो दशमलव संख्या को 1 से 100 तक सम्मिलित करता है। लेकिन संख्या के बजाय तीन प्रिंट "फ़िज़" के गुणकों के लिए और पाँच प्रिंट "बज़" के गुणकों के लिए। उन संख्याओं के लिए जो तीन और पाँच दोनों के गुणक हैं "FizzBuzz" प्रिंट करें। कार्यक्रम पायथन के कुछ संस्करण में लिखे जाने चाहिए।

अधिक जानकारी के लिए, 1, 2, फ़िज़, 4, बज़ देखें

स्कोरिंग

आपका स्कोर आपके कोड के सार सिंटैक्स ट्री में नोड्स की संख्या के बराबर होगा, जैसा कि पायथन 3 के लिए इस कार्यक्रम या पायथन 2 के लिए इस कार्यक्रम द्वारा बताया गया है । प्रोग्राम चलाने के लिए, प्रोग्राम को कमांड लाइन तर्क के रूप में अपने कोड का फ़ाइल नाम प्रदान करें। उदाहरण के लिए:

python simple_counter.py fizzbuzz.py

ये कार्यक्रम पायथन के मूल मॉड्यूल से दूर हैं । यदि आपको कोई कठिनाई है, तो मुझे बताएं।

तुच्छ समाधानों को रोकने के लिए, जैसे वास्तविक कार्यक्रम के साथ एक लंबी स्ट्रिंग निष्पादित करना, या आउटपुट को हार्डकोड करना, कुछ अतिरिक्त प्रतिबंध हैं:

  • आपके कोड का कोई भी टोकन 15 वर्णों से अधिक नहीं हो सकता है। उपरोक्त कार्यक्रम आपके लिए इस आवश्यकता की जांच करेंगे। ध्यान दें कि कार्यान्वयन में आसानी के लिए, उपरोक्त कार्यक्रम टोकन के रूप में टिप्पणियों की गणना करते हैं।

  • कोड निष्पादन / मूल्यांकन पर प्रतिबंध है।

यदि आपके पास कोई प्रश्न है कि क्या कुछ अनुमत है, तो मुझसे पूछें।

स्कोरिंग सांख्यिकी

निम्न नियम आमतौर पर आपके कार्यक्रम के स्कोर की गणना करने के लिए पर्याप्त हैं:

  • ब्लॉक बयानों 1 बिंदु हैं: if, for ... in ..., while, else, आदि

  • : स्टैंडअलोन बयानों 1 अंक हैं printअजगर 2 में, break, pass, आदि

  • चर 2 अंक हैं

  • एकल टोकन शाब्दिक 1 अंक हैं: 2131, "Hello, world!",True

  • कार्य 3 अंक हैं (एक चर का उपयोग करने के लिए 2, 1 अतिरिक्त): printपायथन 3 range, आदि में।

  • ऑपरेटर्स 2 अंक हैं: +, *, %, and, not, आदि

  • = 1 अंक है

  • : संवर्धित काम 2 अंक है +=, |=आदि

  • कोष्ठक, इंडेंटेशन, आदि 0 अंक हैं।

  • एक पंक्ति जिसमें एक अभिव्यक्ति है, जैसा कि असाइनमेंट या एक अभिव्यक्ति के विपरीत है, + 1 बिंदु है।

  • सभी पर कोड 1 अंक है।

चुनौती:

सबसे कम स्कोर जीतता है। सौभाग्य!


1
मुझे ये अदा पसंद है। आपको केवल छोटे कार्यक्रमों के बजाय सरल कार्यक्रमों के लिए जाना होगा।
फल

1
क्या हमें वास्तव में इसके लिए कोड-चैलेंज एस्ट्रो-गोल्फ की आवश्यकता है ? क्या यह परमाणु-कोड-गोल्फ का सिर्फ एक विशिष्ट रूप नहीं है ?
मार्टिन एंडर

@MartinEnder इसका कारण यह है कि मैंने ऐसा इसलिए किया क्योंकि परमाणु-कोड-गोल्फ के लिए टैग पाठ "परमाणु कोड गोल्फ आपके प्रोग्राम के टोकन की संख्या से बनाया गया है," और यह केवल इस तरह नहीं है, हालांकि शायद केवल एक सुंदर छोटी राशि।
ईसैक

जवाबों:



2

46

for x in range(100):print('Fizz'*(x%3>1)+'Buzz'*(x%5>3)or str(x+1))

क्या x + 1 को अजगर 3 में कठोर नहीं किया जा सकता है?
विनाशकारी

1
@DestructibleWatermelon Python 3 reprमें जहाँ तक मुझे याद है उसके लिए बैकटिक्स नहीं है ।
काडे

3
प्रिंट अपने तर्क के रूप में एक पूर्णांक ले सकता है, मेरी बात थी
विनाशकारी नींबू


0

अजगर 2, 36

for i in range(1, 101):
    print (not i % 3) * "Fizz" + (not i % 5) * "Buzz" or i

मुझे लगता है कि यह उन दृष्टिकोणों में सबसे छोटा है जो बड़ी संख्या / स्ट्रिंग्स का उपयोग नहीं करते हैं।

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