वर्ष का चीनी राशि चक्र


9

2015 बकरी का साल था! इस चुनौती में, आप यह पता लगाएंगे कि कौन सा जानवर वर्ष का प्रतिनिधित्व करता है। इस चुनौती को जटिल बनाने से बचने के लिए आपको चीनी नव वर्ष की गणना करने की आवश्यकता नहीं होगी।

क्योंकि वे राशि चक्र में केवल 12 जानवर हैं, आपके कोड को यथासंभव छोटा होना होगा।

उदाहरण

आपके कार्यक्रम को सिस्टम वर्ष मिलना चाहिए , पहली पंक्ति केवल संदर्भ के लिए है

2015
Goat

1924
Rat

1923
Pig

2008
Rat

विशिष्टता

राशि चक्र का क्रम है:

Rat, Ox, Tiger, Rabbit, Dragon, Snake, Horse, Goat, Monkey, Rooster, Dog, Pig

Rat2008 में शुरू होता है, Pig2007 है, Ox2009 में, आदि अंत में यह छोरों के चारों ओर वापस।

आउटपुट को सही ढंग से कैपिटल में लाना चाहिए।


क्या २०० before से पहले कुछ भी मान लिया गया है Rat?
जच गेट्स

@ZachGates नहीं, यह सिर्फ एक उदाहरण है। मैं अपडेट
करूंगा

क्या यह उपयोगकर्ता के टाइमज़ोन में वर्ष का उपयोग कर सकता है?
लेजियनमामल 978


1
मैं सिस्टम वर्ष की आवश्यकता से भ्रमित हूं। तो कोई इनपुट नहीं है? तो 2015 में, यह बकरी को मुद्रित करता था, और अब, इसे बंदर को प्रिंट करना चाहिए?
तन्मथ

जवाबों:


5

पायथ, 54 बाइट्स

@rR3c."ayÖÚ©*ÐPk<`eüµÜxþ!¬Ì ¾½hÑðÙBwp"\c.d3

इसे ऑनलाइन आज़माएँ: प्रदर्शन

आप .d3अन्य राशि वाले जानवरों का परीक्षण करने के लिए किसी भी वर्ष की संख्या के साथ पिछले 3 वर्णों को बदल सकते हैं।

स्पष्टीकरण:

     ."ayö..."        packed string, decrypts to "monkeycroostercdogcpig..."
    c         \c      split this string at "c"s
 rR3                  make the first letter of each animal uppercase
                .d3   current year
@                     take the correct animal of the list and print

6

पायथ - 65 बाइट्स

@c." y=CÅQ¯@îR
°©ÀáëªfÞ­#[õNqÀN8Ô'¼ô,n7˶~fB").d3

इसे यहाँ ऑनलाइन आज़माएँ

@                     Modular indexing
 c           )        Split string, use default of spaces
  ."ajs&^asd"         Packed string to compress space separated zodicas
 .d3                  Current year

क्या आप एक स्पष्टीकरण जोड़ सकते हैं?
तन्मथ

@ तन्माथ वास्तव में सरल है, लेकिन निश्चित है
माल्टीसेन

आप वर्ण स्थान को कम करके कम से कम 3 बाइट्स बचा सकते हैं। डेमो इसके अलावा, आप एक हेक्सडंप के रूप में अप्राप्य कोड पोस्ट करना चाहते हैं और एक मुद्रण योग्य संस्करण शामिल कर सकते हैं।
पुरकाकूदरी

4

जावास्क्रिप्ट ईएस 6, 106 105 104 103 बाइट्स

सहेजा Maltysen लिए 1 बाइट धन्यवाद, 1 insertusernamehere को बाइट, और 1 edc65 को बाइट!

x=>"RatOxTigerRabbitDragonSnakeHorseGoatMonkeyRoosterDogPig".match(/.[a-z]+/g)[new Date().getYear()%12]

सुंदर आत्म व्याख्यात्मक।


मुझे लगता है कि स्ट्रिंग कुछ बटा और एटब का उपयोग कर सकती है। (आप बाइट एन्कोडिंग को बदल सकते हैं, अगर इसकी अनुमति हो)।
मामा फन रोल

@ Result n looksuɐɯɹɐ ן oɯ का btoaपरिणाम 1.5x या अधिक हार्डकोडेड स्ट्रिंग की लंबाई का प्रतीत होता है।
कॉनर ओ'ब्रायन

नहीं, एनकोड करने के लिए एटब का उपयोग करें, और डीकोड करने के लिए बीटोए।
मामा फन रोल

5
आप 1 बाइट बचा सकते हैं : 0विभाजक को हटा दें और स्ट्रिंग को विभाजित करने के लिए इस रेगेक्स का उपयोग करें /(?=[A-Z])/:। नववर्ष की शुभकामना। :)
सम्मिलननामे

1
match(/.[a-z]+/g)विभाजन के बजाय (अतिरिक्त मूल्य: कैप्चर के साथ विभाजन ES6 नहीं है, एक फ़ायर्फ़ॉक्स केवल सुविधा है) (और 1 बाइट कम)
edc65

3

सीजेएम, 82 80 75 बाइट्स

यह मेरे मिल्की वे उत्तर का सीधा पोर्ट था ।

"Monkey Rooster Dog Pig Rat Ox Tiger Rabbit Dragon Snake Horse Goat"S/et0==

7 बाइट्स को निन्जा के लिए धन्यवाद ।


आप Sअंतरिक्ष के लिए एक चर के रूप में उपयोग कर सकते हैं ।
NinjaBearMonkey

1
और भी छोटा:"Monkey Rooster Dog Pig Rat Ox Tiger Rabbit Dragon Snake Horse Goat"S/et0==
निंजाबियरनॉकी

3

जाप , 72 65 बाइट्स

`Mkey RooÐP Dog Pig R Ox Tig Rabb Dg Snake HÆ  Go`¸gÐ i %C

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


उम्म ... यह बहुत अच्छा है, लेकिन निश्चित रूप से वहाँ कुछ unprintables है। क्या आप हमें एक लिंक दे सकते हैं?
20

@ हाँ, इस बात का ध्यान नहीं रखा गया है कि अप्राप्य छीन लिए गए हैं। इसे फिर से स्थापित करें: D
nicael

BTW, के बजाय $[$Ð i -4 %12], आप उपयोग कर सकते हैं g(Ð i -4 %C
20

@ ठीक है, और मैं तत्व के क्रम को बदलकर -4 का भी निपटान करूँगा।
निकेल

@ रुको, आपका फिक्स काम नहीं करता है, NaN को आउटपुट करता है ...
nicael

1

MATL , 85 बाइट्स

'Rooster Dog Pig Rat Ox Tiger Rabbit Dragon Snake Horse Goat Monkey'YbZ'10H$XOU12X\)

भाषा / संकलक के रिलीज 6.0.0 का उपयोग करता है । ऑक्टेव में काम करता है।

उदाहरण

>> matl
 > 'Rooster Dog Pig Rat Ox Tiger Rabbit Dragon Snake Horse Goat Monkey'YbZ'10H$XOU12X\)
 >
Monkey

व्याख्या

ध्यान दें कि एक घटाव से बचने के लिए प्रारंभिक स्ट्रिंग को 3 से चक्रीय रूप से विस्थापित किया जाता है।

'Rooster Dog Pig Rat Ox Tiger Rabbit Dragon Snake Horse Goat Monkey'
Yb                    % split at spaces
Z'                    % number representing current date and time
10H$XO                % get year as a string
U                     % convert to number
12X\                  % modulo 12, with 0 converted to 12
)                     % index (and implicitly print)

1

मिल्की वे 1.6.1 , 101 96 बाइट्स

M" "\=A12n"Goat Horse Snake Dragon Rabbit Tiger Ox Rat Pig Dog Rooster Monkey"" "\;>=<&{~1-;^};!

लुइस मेंडू द्वारा एक अनुस्मारक के लिए धन्यवाद 5 बाइट्स सहेजे गए ।


व्याख्या

कोड 12 से सिस्टम वर्ष modulos और उचित पशु outputs।


प्रयोग

./mw <path-to-code>

1
शायद तुम 2008-मेरे जवाब के रूप में स्ट्रिंग को पुन: व्यवस्थित करने से बच सकते हो ?
लुइस मेंडो

ओह, मुझे लगता है कि आप अपने सीजेएम जवाब में पहले से ही ऐसा करते हैं
लुइस

आप सही हे! मैं अपने CJam उत्तर से रिवर्स में स्ट्रिंग का उपयोग कर सकता हूं। मेरी याद दिलाने के लिए धन्यवाद @LuisMendo
Zach Gates

1

CJam, 69 बाइट्स

"SKiN<lEz=2)aFBY8H[$h-0|4=K`T2Cp%-a)o6"132b26b'`f+'`/et0==(eu\

इसमें unprintables का एक गुच्छा होता है। इसे यहाँ आज़माएँ।


4
आप इनपुट के रूप में एक वर्ष नहीं ले सकते हैं, इसे वर्तमान सिस्टम समय का उपयोग करना होगा।
माल्टसेन

आह, नियत। @ माल्टीसेन
लिन

1

पायथन 3, 126 116 112 बाइट्स

संपादित करें: मैं अन्य उत्तर रख रहा हूं क्योंकि यह शांत है, लेकिन यह छोटा है।

from time import*
"Monkey Rooster Dog Pig Rat Ox Tiger Rabbit Dragon Snake Goat".split()[localtime().tm_year%12]

यदि व्हॉट्सएप का पता लगाना ठीक है, तो यह 126 बाइट्स है। यदि नहीं, तो .strip()कोड के अंत में जोड़ने के बाद यह 134 बाइट्स है ।

from datetime import*
"MRDPROTRDSHGoooiaxiarnoonoggt gbaaraks    ebgkstet    rioee ye     tn    r"[datetime.now().year%12::12]

0

आर, 119 बाइट्स

scan(t="Monkey Rooster Dog Pig Rat Ox Tiger Rabbit Dragon Snake Horse Goat",w="")[(format(Sys.Date(),"%Y"):1)[1]%%12+1]

format(Sys.Date(),"%Y")वर्ष को एक चरित्र स्ट्रिंग के रूप में लौटाता (format(Sys.Date(),"%Y"):1)[1]है, सबसे छोटा तरीका है जो मैं इसे एक पूर्णांक में ले जाने के बारे में सोच सकता हूं ताकि हम इसे लागू %%कर सकें (अनुक्रम जनरेटर :वास्तव में पूर्णांक के लिए स्वचालित रूप से coerces)। +1क्योंकि R सूचकांक 1-आधारित हैं और 0-आधारित नहीं हैं।


0

PHP> = 5.6, 84 बाइट्स

बहुत सीधे आगे:

<?=[Monkey,Rooster,Dog,Pig,Rat,Ox,Tiger,Rabbit,Dragon,Snake,Horse,Goat][date(Y)%12];

0

पायथन 129 126 बाइट्स

संपादित करें : मैंने अभी s.split ('') = s.split () सीखा है

हालांकि यह सबसे छोटा तरीका नहीं है, यहाँ @ शर्लक 9 के लिए एक वैकल्पिक उत्तर दिया गया है:

from datetime import*
print 'Monkey Rooster Dog Pig Rat Ox Tiger Rabbit Dragon Snake Horse Goat'.split()[date.today().year%12]

इसे यहाँ आज़माएँ


वाह। मैंने सिर्फ अपने उत्तर को संपादित किया और जो मैंने इसे संपादित किया उसके बहुत करीब था। मैं timeअगले के साथ कुछ करने की कोशिश कर रहा हूँ ।
शर्लक

0

पॉवरशेल, 92 बाइट्स

(-split"Monkey Rooster Dog Pig Rat Ox Tiger Rabbit Dragon Snake Horse Goat")[(date).Year%12]

अन्य उत्तरों की भावना के समान, केवल कैटलॉगिंग के लिए यहां जोड़ा गया है। यह स्ट्रिंग लेता है "Monkey ... Goat"और -splitइसे एक सरणी बनाने के लिए रिक्त स्थान पर रखता है , जो तत्वों को व्यक्तिगत रूप से निर्दिष्ट करने की तुलना में सस्ता है ("Monkey","Rooster",...)। हम वर्तमान yearमॉड के साथ उस एरे में इंडेक्स करते हैं 12, जो परिणाम को आउटपुट करता है। कुछ भी नहीं फैंसी।


0

सी # 159

using System;class P{static void Main(){Console.Write("Monkey;Rooster;Dog;Pig;Rat;Ox;Tiger;Rabbit;Dragon;Snake;Horse;Goat".Split(';')[DateTime.Now.Year%12]);}}

पठनीय / ungolfed संस्करण

using System;
class Program
{
    static void Main(string[] args)
    {
        Console.Write("Monkey;Rooster;Dog;Pig;Rat;Ox;Tiger;Rabbit;Dragon;Snake;Horse;Goat".Split(';')[DateTime.Now.Year % 12]);
    }
}

0

जे , 78 बाइट्स

(>;:'Monkey Rooster Dog Pig Rat Ox Tiger Rabbit Dragon Snake Horse Goat'){~12|

उपयोग:

    (>;:'Monkey Rooster Dog Pig Rat Ox Tiger Rabbit Dragon Snake Horse Goat'){~12| 2015
 Goat

स्पष्टीकरण:

;:      separates the string into boxed array according to the spaces
>       opens the boxed array so that it becomes a normal array
x {~ y  is choose the y-th element from x.
        the ~ reverses the argument, so x { y is choose the x-th element from y.
12|     is the residue when the year is divided by 12
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.