মরসুম নির্ধারণ করুন


11

পরিচিতি:

ইন উত্তর গোলার্ধে (অর্থাত ইউরোপ, উত্তর আমেরিকা, ইত্যাদি), ঋতু ভালো বিভক্ত করা হয়:
- বসন্ত: মার্চ, এপ্রিল, মে
- সামার: জুন, জুলাই, আগস্ট
- শরত: সেপ্টেম্বর, অক্টোবর, নভেম্বর
- শীতকালীন: ডিসেম্বর , জানুয়ারি ফেব্রুয়ারি

ইন দক্ষিণ গোলার্ধে তবে (অর্থাত অস্ট্রেলিয়া, দক্ষিণ আমেরিকা, ইত্যাদি), ঋতু ভালো বিভক্ত করা হয়:
- বসন্ত: সেপ্টেম্বর, অক্টোবর, নভেম্বর
- সামার: ডিসেম্বর, জানুয়ারি, ফেব্রুয়ারি
- শরত: মার্চ, এপ্রিল, মে
- শীতকালীন: জুন জুলাই আগস্ট

এই পার্থক্যটি নিরক্ষীয় অঞ্চল সম্পর্কে সূর্যের অবস্থানের কারণে, যেখানে উত্তর এবং দক্ষিণ গোলার্ধগুলির বিপরীত asonsতু রয়েছে।

ইনপুট:

এই চ্যালেঞ্জের মধ্যে, আমরা দুটি ইনপুট গ্রহণ করব:

  • মাসের জন্য একটি ( 1 <= m <= 12বা 0 <= m <= 11) (উদাহরণ এবং পরীক্ষার কেসগুলি সমস্ত 1-সূচকযুক্ত)।
  • এবং পৃথিবী ( -2 <= p <= 2) এর অক্ষাংশে পাঁচটি 'পজিশন-গ্রুপ' এর মধ্যে একটি , যেখানে -2অ্যান্টার্কটিক -1বাদে দক্ষিণ গোলার্ধ 0, এটি নিরক্ষীয় অঞ্চলের 1বাদে উত্তর গোলার্ধ, আর্টিক বাদে উত্তর গোলার্ধ, এবং 2এটি উত্তর মেরু সংক্রান্ত.
    যদিও আর্কটিক, অ্যান্টার্কটিক এবং ক্রান্তীয় অঞ্চলে অবশ্য এখনও asonsতু রয়েছে, এই চ্যালেঞ্জের জন্য আমরা বলব আর্কটিক এবং অ্যান্টার্কটিকের একটি স্থির অবস্থা রয়েছে Winter, এবং ক্রান্তীয় স্থিতিশীল অবস্থায় রয়েছে Summer

এখানে এই পাঁচটি দলের একটি দৃশ্য উপস্থাপনা, যেখানে -2অ্যান্টার্কটিক সার্কেল; -1মকর এবং অ্যান্টার্কটিক বৃত্তের ক্রান্তীয় অঞ্চলের মধ্যে; 0মকর এবং গ্রীষ্মের ট্রপিকের মধ্যে ক্যান্সার; 1আর্টিক সার্কেল এবং ট্রপিক অফ ক্যান্সারের মধ্যে; এবং -2আর্কটিক সার্কেল।

এখানে চিত্র বর্ণনা লিখুনএখানে চিত্র বর্ণনা লিখুন উত্স: কসমস - এসএওও এনসাইক্লোপিডিয়া অফ অ্যাস্ট্রোনমি

আউটপুট:

এক 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

কেন আমরা কেবল asonsতুগুলির জন্য চারটি স্বতন্ত্র মান ব্যবহার করতে পারি না?
এরিক আউটগল্ফার

আমি সেই নিয়মটি পড়েছি, এজন্যই আমি জিজ্ঞাসা করেছি। এছাড়াও, আপনি "যাদু-পূর্ণসংখ্যার গণনা" থেকে কেন ভয় পান?
এরিক আউটগল্ফার

আমি কেবল গণনা দেখে খারাপ কিছু দেখতে পাচ্ছি না, এগুলি সম্ভবত যাইহোক সূচির জন্য ব্যবহৃত হবে। এটি আপনার চ্যালেঞ্জ, তবে আমি বলব এটি একটি অপ্রয়োজনীয় জটিলতা। সম্পাদনা: অনুলিপি সম্পর্কে, ভাল, এটি সত্যই এড়ানো যায় না।
এরিক আউটগল্ফার

2
আমি মনে করি না যে কোনও বোনাস প্রয়োজনীয়, প্রোগ্রামটি এখনও কাজ করে যদি এটি আউটপুটটিকে str স্ট্রিংয়ে রূপান্তর না করে।
এরিক দি আউটগল্ফার

1
আমি মনে করি পাঠ্যের বাইট আকারটি অফসেট করতে বাইট বোনাসগুলি পুরোপুরি ঠিক আছে। এটি "বোনাস এক্স পয়েন্টগুলির মধ্যে একটি নয় তবে আপনি যদি এই অন্যান্য কাজটিও করেন"। চ্যালেঞ্জটি মরসুমকে কেন্দ্র করে, সুতরাং actuallyতুগুলি মুদ্রণের জন্য এটি উত্সাহিত করে তোলে।
নাথান মেরিল

উত্তর:



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

সি (জিসিসি) , 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ঠিক আছে, না?
লিন

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