सीजन निर्धारित करें


11

परिचय:

में उत्तरी गोलार्द्ध (यानी यूरोप, उत्तरी अमेरिका, आदि), मौसम इस तरह विभाजित हैं:
- वसंत: मार्च, अप्रैल, मई
- ग्रीष्मकालीन: जून, जुलाई, अगस्त
- शरद ऋतु: सितंबर, अक्टूबर, नवंबर
- शीतकालीन: दिसम्बर , जनवरी फरवरी

में दक्षिणी गोलार्द्ध तथापि (यानी ऑस्ट्रेलिया, दक्षिण अमेरिका, आदि), मौसम इस तरह विभाजित हैं:
- वसंत: सितंबर, अक्टूबर, नवंबर
- ग्रीष्मकालीन: दिसंबर, जनवरी, फरवरी
- शरद ऋतु: मार्च, अप्रैल, मई
- शीतकालीन: जून, जुलाई, अगस्त

यह अंतर भूमध्य रेखा के बारे में सूर्य की स्थिति के कारण है, जहां उत्तरी और दक्षिणी गोलार्ध में विपरीत मौसम होते हैं।

इनपुट:

इस चुनौती में, हम दो इनपुट लेंगे:

  • महीने के लिए एक ( 1 <= m <= 12या 0 <= m <= 11) (उदाहरण और परीक्षण के मामले सभी 1-अनुक्रमित हैं)।
  • और पृथ्वी के अक्षांशों पर पांच 'स्थिति-समूहों' के लिए एक -2 <= p <= 2, जहां -2अंटार्कटिक है, अंटार्कटिक -1को छोड़कर दक्षिणी गोलार्ध है, 0भूमध्य रेखा के निकट में ट्रापिक्स हैं, 1आर्कटिक को छोड़कर उत्तरी गोलार्ध 2है। आर्कटिक।
    हालाँकि आर्कटिक, अंटार्कटिक और ट्रॉपिक्स में अभी भी मौसम है, इस चुनौती के लिए हम कहेंगे कि आर्कटिक और अंटार्कटिक एक स्थिर स्थिति में हैं Winter, और ट्रोपिक्स एक निरंतर स्थिति में हैं Summer

यहां इन पांच समूहों का एक दृश्य प्रतिनिधित्व है, जहां -2अंटार्कटिक सर्कल है; -1मकर और अंटार्कटिक सर्कल के ट्रॉपिक के बीच; 0मकर रेखा और कर्क रेखा के बीच; 1आर्कटिक सर्कल और कैंसर के ट्रॉपिक के बीच; और -2आर्कटिक सर्कल।

यहाँ छवि विवरण दर्ज करेंयहाँ छवि विवरण दर्ज करें स्रोत: COSMOS - खगोल विज्ञान के SAO विश्वकोश

आउटपुट:

में से एक Spring, Summer, Autumn, या Winter, इन नियमों का पालन:

  • स्थिति इनपुट 2या -2(आर्कटिक या अंटार्कटिक) है, हमेशा आउटपुट Winter
  • स्थिति इनपुट 0(ट्रोपिक्स) है, हमेशा आउटपुट Summer
  • स्थिति इनपुट 1(उत्तरी गोलार्ध) है, जो महीने के इनपुट के आधार पर चार सत्रों में से एक है: Spring( m = [3,5]); Summer( m = [6,8]); Autumn( m = [9,11]); Winter( m = 12 or m = [1,2])।
  • स्थिति इनपुट -1(दक्षिणी गोलार्ध) है, जो महीने के इनपुट के आधार पर चार सत्रों में से एक है: Spring( m = [9,11]); Summer( m = 12 or m = [1,2]); Autumn( m = [3,5]); Winter( m = [6,8])।

चुनौती नियम:

  • आउटपुट संकेत अपनी पसंद के किसी चार अलग मूल्यों Spring, Summer, Autumn, या Winter(राज्य कृपया क्या आप अपने जवाब में प्रयोग किया जाता है)।
    -15 बोनस बाइट्स आप उत्पादन करता है, तो Spring, Summer, Autumn, या Winter(के बजाय इस्तेमाल किया खिताब मामले की केस-संवेदी है, इसलिए पूरी तरह से लोअरकेस या पूरी तरह से बड़े रूप में अच्छी तरह हो सकता है) पाठ के रूप में।
  • महीना इनपुट किसी भी उचित प्रारूप में हो सकता है। या तो 0-अनुक्रमित या 1-अनुक्रमित पूर्णांक, दिनांक-ऑब्जेक्ट, महीना-स्ट्रिंग, आदि हो सकते हैं।
  • स्थिति इनपुट हमेशा इन संभव पांच आदानों में से एक होगी -2, -1, 0, 1, 2

सामान्य नियम:

  • यह , इसलिए बाइट्स जीत में सबसे छोटा जवाब है।
    कोड-गोल्फ भाषाओं को गैर-कोडगॉल्फिंग भाषाओं के साथ उत्तर पोस्ट करने से हतोत्साहित न करें। 'किसी भी' प्रोग्रामिंग भाषा के लिए यथासंभव संक्षिप्त उत्तर के साथ आने का प्रयास करें।
  • मानक नियम आपके उत्तर के लिए लागू होते हैं , इसलिए आपको उचित पैरामीटर और रिटर्न-टाइप, पूर्ण कार्यक्रमों के साथ STDIN / STDOUT, फ़ंक्शन / विधि का उपयोग करने की अनुमति है। तुम्हारा कॉल।
  • डिफ़ॉल्ट लूपोल्स वर्जित हैं।
  • यदि संभव हो, तो कृपया अपने कोड के लिए एक परीक्षण के साथ एक लिंक जोड़ें।
  • इसके अलावा, यदि आवश्यक हो तो एक स्पष्टीकरण जोड़ें।

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

Position    1-indexed Month    Output

-2          8  (August)        Winter
-2          12 (December)      Winter
-1          3  (March)         Autumn
-1          5  (May)           Autumn
-1          8  (August)        Winter
-1          12 (December)      Summer
0           1  (January)       Summer
0           7  (July)          Summer
1           1  (January)       Winter
1           4  (April)         Spring
1           7  (July)          Summer
1           12 (December)      Winter
2           2  (February)      Winter
2           9  (September)     Winter

हम सिर्फ मौसमों के लिए चार अलग-अलग मूल्यों का उपयोग क्यों नहीं कर सकते?
एग्रीकल्चर से एरिक

मैंने उस नियम को पढ़ा, इसीलिए मैंने पूछा। इसके अलावा, आप "जादू-पूर्णांक गणना" से क्यों डरते हैं?
एग्रीकल्चर से एरिक

मैं केवल गणनाओं को देखने के साथ कुछ भी बुरा नहीं देखता, वे वैसे भी अनुक्रमण के लिए सबसे अधिक उपयोग किया जाएगा। यह आपकी चुनौती है, लेकिन मैं कहूंगा कि यह एक अनावश्यक जटिलता है। संपादित करें: नकल के बारे में, ठीक है, यह वास्तव में परिहार्य नहीं है।
बजे द एग्रीग्राफर

2
मुझे नहीं लगता कि कोई भी बोनस आवश्यक है, कार्यक्रम अभी भी काम करता है अगर यह आउटपुट को उन तारों में परिवर्तित नहीं करता है।
एग्री आउटलोफर

1
मुझे लगता है कि पाठ के बाइट आकार को ऑफसेट करने के लिए बाइट बोनस पूरी तरह से ठीक है। यह उन "बोनस एक्स बिंदुओं में से एक नहीं है यदि आप यह अन्य कार्य करते हैं"। यह चुनौती ऋतुओं के इर्द-गिर्द केंद्रित है, इसलिए यह वास्तव में मौसमों को छापने के लिए प्रोत्साहित करने का एक अर्थ है।
नाथन मेरिल

जवाबों:



6

पायथन 2 , 29 बाइट्स

lambda p,m:[0,m+6,6,m][p]/3%4

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

जीबी के रूबी दृष्टिकोण का एक बंदरगाह , जो कुछ बाइट्स से छोटा हो गया है:

32 बाइट्स

lambda p,m:(p%2*(p+m/3+5)or p)%4

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

एक अनाम फ़ंक्शन जो सीजन को 0 से 3 की संख्या के रूप में लौटाता है, जहां वे उस क्रम में समर, ऑटम, विंटर और स्प्रिंग का प्रतिनिधित्व करते हैं।

वास्तविक मौसम के नाम छापने के लिए:

63 - 15 = 48 बाइट्स

lambda p,m:"SAWSuuipmtnrmutiemenrnrg"[(p%2*(p+m/3+5)or p)%4::4]

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

अगर कोई चाहता है तो संयुक्त स्ट्रिंग है।


3

C (gcc) , 78 75 (-15 बोनस) = 60 बाइट्स

1-आधारित महीनों का उपयोग करना।

संपादित करें: गणितीय ऑपरेटरों को पुनर्व्यवस्थित किया और कम किया।

f(m,a){puts("Summer\0Autumn\0Winter\0Spring"+7*(a*a&1?(++a+m/3)%4:2*!!a));}

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


1
आप (++a+m/3)%4→ के साथ दो बाइट्स बचा सकते हैं ++a+m/3&3। इसके अलावा, a*aजब ठीक aहै, तो अजीब है, इसलिए जाँच a&1ठीक होनी चाहिए, नहीं?
लिन

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