বছরের রাশিচক্র


9

২০১৫ সাল ছিল ছাগলের বছর! এই চ্যালেঞ্জের মধ্যে, আপনি কোন প্রাণীটি বছরের প্রতিনিধিত্ব করে তা নির্ধারণ করবেন। জটিল এই চ্যালেঞ্জটি এড়াতে আপনার চাইনিজ নতুন বছর গণনা করতে হবে না।

যেহেতু এরা রাশিচক্রের মাত্র 12 প্রাণী, আপনার কোডটি যতটা সম্ভব সংক্ষিপ্ত হওয়া দরকার।

উদাহরণ

আপনার প্রোগ্রামটি অবশ্যই সিস্টেম বর্ষটি পাবে , প্রথম লাইনটি কেবল রেফারেন্সের জন্য

2015
Goat

1924
Rat

1923
Pig

2008
Rat

সবিস্তার বিবরণী

রাশিচক্রের ক্রমটি হ'ল:

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

Rat২০০৮-এ শুরু হয়, Pig২০০ 2007-এ, Ox২০০৯ ইত্যাদি etc.

আউটপুট অবশ্যই সঠিকভাবে মূলধন করা উচিত।


২০০৮ এর আগে কি কিছু মনে করা হয় Rat?
জ্যাচ গেটস

@ জাচগেটস না, এটি কেবল একটি উদাহরণ। আমি আপডেট করব
ডাউনগোট

এটি কি ব্যবহারকারীর টাইমজোনটিতে বছরটি ব্যবহার করতে পারে?
LegionMammal978


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

জাভাস্ক্রিপ্ট ES6, 106 105 104 103 বাইট

সংরক্ষিত Maltysen 1 বাইট ধন্যবাদ, 1 insertusernamehere করার বাইট, এবং 1 edc65 করার বাইট!

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

খুব স্ব স্ব বর্ণনাকারী।


আমি মনে করি যে স্ট্রিংটি কিছু বিটিওএ এবং এটোব ব্যবহার করতে পারে। (যদি অনুমোদিত হয় তবে আপনি বাইট এনকোডিংও পরিবর্তন করতে পারেন)।
মামা ফান রোল

@ ɟ nɟuɐɯɹɐ ן oɯ btoaএর ফলাফল হার্ডকডযুক্ত স্ট্রিংয়ের দৈর্ঘ্য 1.5x বা তার বেশি হতে পারে।
কনর ও'ব্রায়ান

না, এনকোড করতে atob এবং ডিকোড করতে btoa ব্যবহার করুন।
মামা ফান রোল

5
আপনি সংরক্ষণ করতে পারবেন 1 বাইট : সরান 0বিভাজক হিসেবে এবং স্ট্রিং বিভক্ত করতে এই Regex ব্যবহার করুন: /(?=[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স্থানের জন্য পরিবর্তনশীল হিসাবে ব্যবহার করতে পারেন ।
নিনজা বিয়ারমোনকি

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

এটি অনলাইন চেষ্টা করুন!


উম্মম ... এটি বেশ ভাল, তবে সেখানে অবশ্যই কিছু অ-প্রিন্টেবল রয়েছে। আপনি আমাদের একটি লিঙ্ক দিতে পারেন?
ETH প্রোডাকশনগুলি

@ ইয়ে, এগুলি অ্যাকাউন্ট থেকে নি যে অপ্রিন্টযোগ্য ছিনিয়ে নেওয়া হয়েছে। এটি পুনরুদ্ধার করতে
চলেছে

এর পরিবর্তে বিটিডাব্লু, $[$Ð i -4 %12]আপনি ব্যবহার করতে পারেন g(Ð i -4 %C
ETH প্রোডাকশনগুলি

@ ঠিক আছে, এবং আমি উপাদান ক্রম পরিবর্তন করে -4 নিষ্পত্তি করব।
নিকেল 20

@ অপেক্ষা করুন, আপনার ফিক্সটি কাজ করতে দেখা যায় না,
এনএএনকে

1

এমএটিএল , 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 দ্বারা মডুলাস করে এবং যথাযথ প্রাণীর আউটপুট দেয়।


ব্যবহার

./mw <path-to-code>

1
2008-আমার উত্তর মত স্ট্রিং পুনরায় সাজিয়ে আপনি এড়াতে পারেন ?
লুইস মেন্ডো

ওহ, আমি মনে করি আপনি ইতিমধ্যে আপনার সিজেএম উত্তরে এটি করেছেন
লুইস মেন্ডো

তুমি ঠিক বলছো! আমি আমার সিজেএম উত্তর থেকে স্ট্রিংটি বিপরীতে ব্যবহার করতে পারি। আমাকে @ লুইসমেন্দো মনে করিয়ে দেওয়ার জন্য ধন্যবাদ
জ্যাচ গেটস

1

সিজেম, 69 বাইট

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

একচেটিয়া ছাপিয়ে ছাপিয়ে যায় pr এখানে চেষ্টা করুন।


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কারণ সূচকগুলি 1-ভিত্তিক এবং 0-ভিত্তিক নয়।


0

পিএইচপি> = 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পরের সাথে কিছু চেষ্টা করতে যাচ্ছি ।
শার্লক 9

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]);}}

পাঠযোগ্য / নিরবচ্ছিন্ন সংস্করণ

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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.