দুটি লিঙ্কযুক্ত প্রোগ্রাম ব্যবহার করে আউটপুট অর্ডিনাল সংখ্যাগুলি এন পর্যন্ত


19

... সাধারণ সংখ্যা (বা অর্ডিনাল সংখ্যাসমূহ) একটি ক্রমিক ক্রমে অবস্থান বা পদকে প্রতিনিধিত্বকারী শব্দ words

এখানে চিত্র বর্ণনা লিখুন

উইকিপিডিয়া থেকে ।

আপনার কাজটি হ'ল 2 থেকে আলাদা প্রোগ্রাম ব্যবহার করে (যার মধ্যে 2 টি আলাদা ভাষা থেকে তৈরি করা যায়), প্রথম থেকে শুরু করে অর্ডিনাল ক্রম আউটপুট করা nth। আপনি সম্পূর্ণ শব্দটির secondবিপরীতে আউটপুট দিচ্ছেন 2nd

অর্ডিনাল সংখ্যার চ্যালেঞ্জ আগে উত্থাপিত হয়েছিল, বিশেষত এই এন্ট্রিতে । এই চ্যালেঞ্জের মধ্যে, অধ্যক্ষগুলি নিচে বর্ণিত অনন্য শর্তগুলির সুবিধার্থে কেবল একটি বাহন।


অংশ 1

আপনাকে অবশ্যই এমন একটি প্রোগ্রাম তৈরি করতে হবে যা nঅবশ্যই কোনও কিছু আউটপুট দিতে হবে ।
nসর্বদা ইতিবাচক, অ-শূন্য পূর্ণসংখ্যার 999 এর চেয়ে বড় নয় larger

বৈধ আউটপুট অন্তর্ভুক্ত তবে সীমাবদ্ধ নয় :

  • stdout/ stderr/ ইত্যাদি কোনও আউটপুট
  • ফাইল / ফোল্ডার / ইত্যাদি তৈরি
  • একটি গ্রাফিকাল ইন্টারফেস বা যে কোনও ধরণের চিত্র

কিছু যায়।


অংশ ২

আপনাকে অবশ্যই এমন একটি প্রোগ্রাম তৈরি করতে হবে যা 1 (প্রথম) থেকে শুরু করে 1 অংশ (1) থেকে শুরু করে 1 অংশে ভাগ করে যা কিছু ভাগ করেছে সেগুলি পর্যন্ত অর্ডিনাল সংখ্যার ক্রম আউটপুট করতে পার্ট 1 এর প্রোগ্রামের আউটপুট ব্যবহার করে n

সাধারণ শর্ত:

  • অংশ 2 এর জন্য মোট বাইটগুলি অবশ্যই 1 অংশ (কম বা সমান) এর মোট বাইটের বেশি হবে না not

আউটপুট শর্তাদি:

  • সংবেদনশীল নয়
  • আউটপুটে অবশ্যই কেবলমাত্র অর্ডিনাল সিকোয়েন্স (কেবলমাত্র অক্ষরগুলির এজেড) এবং হোয়াইটস্পেস (নতুন লাইনের অনুমতি দেওয়া) থাকতে হবে।
  • যে কোনও উত্সের আউটপুট হতে পারে, যতক্ষণ না এটি কার্যকর হওয়ার সময় বা পরে প্রদর্শিত হয়।
  • প্রোগ্রামটির আউটপুট সঠিক হওয়ার কারণে এতক্ষণ শেষ করতে হবে না।
  • আউটপুটটির কোনও ব্যাকরণ থাকার প্রয়োজন হয় না, তবে এটি বিকল্পভাবে অন্তর্ভুক্ত করতে পারে (হাইফেন, কমা, "অ্যান্ডস" ইত্যাদি)। nine hundred ninety ninthঠিক যেমন গ্রহণযোগ্য nine hundred and ninety-ninth

নমুনা আউটপুট

যেখানে n8

FIRST SECOND THIRD FOURTH FIFTH SIXTH SEVENTH EIGHTH

স্কোরিং

জয়ের শর্তগুলির স্তরক্রম হ'ল:

  1. অংশ 1-এ সর্বনিম্ন সংখ্যা বাইট
  2. অংশ 2-এ সর্বনিম্ন সংখ্যা বাইট
Entry #1 | Part 1 = 32 bytes, Part 2 = 22 bytes
Entry #2 | Part 1 = 31 bytes, part 2 = 30 bytes

Entry #2 wins - Part 1 contains 31 bytes vs 32 bytes

---

Entry #1 | Part 1 = 21 bytes, Part 2 = 33 bytes
Entry #2 | Part 1 = 80 bytes, Part 2 = 70 bytes

Entry #2 wins - Entry #1 disqualified (Part 2 contains more bytes than Part 1)

---

Entry #1 | Part 1 = 50 bytes, Part 2 = 49 bytes
Entry #2 | Part 1 = 50 bytes, Part 2 = 50 bytes

Entry #1 wins - Part 1 is equal, Part 2 contains 49 bytes vs 50 bytes

5
অংশ 1 এর পয়েন্টটি কী (যেমন হিসাবে, কেন এই চ্যালেঞ্জটি খণ্ড 2 এর জন্য সংক্ষিপ্ততম জমা দেওয়ার ক্ষেত্রে স্কোর করা যায়নি)? এছাড়াও, আপনার দ্বিতীয় স্কোরিং উদাহরণে, প্রথম প্রবেশটি অবৈধ নয় (অংশ 2> অংশ 1), এবং যদি না হয়, তবে এটি দ্বিতীয় প্রবেশকে পরাজিত করবে না? এছাড়াও, আমি অর্ডিনালগুলি সংজ্ঞায়িত করার জন্য একটি আনুষ্ঠানিক রুলসেটের কমপক্ষে একটি লিঙ্ক থাকার পরামর্শ দিচ্ছি; উদাহরণস্বরূপ, 111 বলার কথা one hundred and eleventhনাকি one hundred eleventh?
হাইপারনিউটারিনো

3
@ হাইপারনিট্রিনো আমার ধারণা, গল্ফ করার সময় এই ধারণাটিকে দুজনের মধ্যে সমানভাবে ভাগ করে নেওয়ার চেষ্টা করা উচিত - যদি আমি পি 1 আউটপুট [30, 'second']তৈরি করি 32তবে পি 2 এর কম কাজ করতে হবে যদি তার আউটপুট থাকে, ঠিক 32
জোনাথন অ্যালান

4
সম্ভবত আমি বোকা কিছু মিস করছি, তবে স্কোরিং উদাহরণগুলিতে শেষ দুটি এন্ট্রিগুলির মধ্যে, কেন এন্ট্রি 1 জিতছে না? অংশ ১ এর একই বাইট রয়েছে, অংশ 2 উভয়ের জন্য অংশ 1 এর চেয়ে কম বা সমান, এবং এন্ট্রি 1 অংশ 2 এর এন্ট্রি 2 অংশ 2 এর চেয়ে কম বাইট রয়েছে
প্যাট্রিক রবার্টস

@ পেট্রিকরবার্টস যেহেতু পার্ট 2-তে অবশ্যই অংশ 1 এর সমান বা কম বাইট থাকতে হবে, যেহেতু পর্ব 1 21 বাইট, তবে পার্ট 2 33 বাইট, এন্ট্রি # 1 অযোগ্য ঘোষণা করা হয়েছে। দুর্ভাগ্যক্রমে, সেই তথ্যটি টুকরো টুকরো করা এবং এই মুহুর্তে জয়ের শর্তে স্পষ্টভাবে বলা হয়নি।
ক্রোনিসিডাল

@ পেট্রিকরোবার্টস এটি গুরুত্বপূর্ণ, কারণ অন্যথায় আপনি একটি ভাষা ব্যবহার করতে পারেন যা আউটপুট হিসাবে
স্পষ্টভাবে

উত্তর:


14

স্লেজহ্যামার ০.০.১ / স্লেজহ্যামার ০.০.১, ১০ বাইট

প্রোগ্রাম 1 (10 বাইট):

⣘⢷⠾⣃⢖⣎⢅⡨⠱⢳

এই ওল্ফ্রাম ভাষার ফাংশনটিতে সংকোচনের বিষয়টি:

{Range[#1], "Ordinal"} &

প্রোগ্রাম 2 (7 বাইট):

⡾⡁⢚⣷⣬⠤⣾

এই ওল্ফ্রাম ভাষার ফাংশনটিতে সংকোচনের বিষয়টি:

StringRiffle[IntegerName @@ #1, " "] &

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


9

আর ( englishপ্যাকেজ সহ), 16 বাইট / 16 বাইট

 পর্ব 1, 16 বাইট

f=function(n)1:n

পার্ট 2, 16 বাইট

english::ordinal

englishপ্যাকেজটির প্রয়োজন (যা টিআইও-তে ইনস্টল করা হয়নি, দুর্ভাগ্যক্রমে)।

english::ordinal(f(22))আউটপুট first second third fourth fifth sixth seventh eighth ninth tenth eleventh twelfth thirteenth fourteenth fifteenth sixteenth seventeenth eighteenth nineteenth twentieth twenty first twenty second

অবশ্যই, অংশ 1টিকে আরও খাটো করা যেতে পারে (3 বাইট seq:), তবে এটি সীমাবদ্ধতার বিরুদ্ধে যাবে যে অংশ 2 আর অংশ 1 এর বেশি থাকতে হবে না।


@ জিউসেপ শিওর যদিও আমি যুক্তি দেব যে CRAN প্যাকেজগুলি আর এর অংশ, এবং যতক্ষণ না আমরা সেগুলি লোড করতে এবং সংযুক্ত করার জন্য প্রয়োজনীয় অক্ষরগুলি গণনা করি ততক্ষণ অনুমতি দেওয়া উচিত।
রবিন রাইডার

আমি বিশ্বাস করি যে মেটা sensকমত্যটি একটি বাহ্যিক গ্রন্থাগার ব্যবহার করা মূলত "অন্য ভাষা" হিসাবে গণ্য হয়; উদাহরণস্বরূপ এই পোস্টটি দেখুন যা সংকলক পতাকা সম্পর্কিত, তবে পাইথন বাহ্যিক গ্রন্থাগারগুলি সম্পর্কে একটি নোট রয়েছে। এখানে উত্তরটি বেশ কয়েকটি উদাহরণ সহকারে শিক্ষণীয় তবে আমি সুনির্দিষ্ট বক্তব্য সন্ধানের জন্য মেটাতে অনুসন্ধান ফাংশনটি ব্যবহার করতে পারি না বলে মনে হয়।
জিউসেপ

@ জিউসেপ চ্যাট অব্যাহত রেখেছে: chat.stackex بدل.com
রবিন রাইডার

8

ওল্ফ্রাম ল্যাঙ্গুয়েজ (ম্যাথমেটিকা) (উভয় অংশ), 18 বাইট / 15 বাইট

-5 / -1 lirtosiast ধন্যবাদ

পর্ব 1, 18 বাইট

Range@#|"Ordinal"&

পার্ট 2, 15 বাইট

IntegerName@@#&

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

দুটি ফাংশন যা রিটার্ন মানের মাধ্যমে আউটপুট দেয়।


2
Range@#|"Ordinal"&সংক্ষিপ্ত, এবং IntegerNameপ্রথম যুক্তি ভেক্টরাইজ করা হয়। যদিও আমি মনে করি স্থান-বিচ্ছিন্ন আউটপুট প্রয়োজন হতে পারে।
lirtosiast

4

পাইথন 3 (পর্ব 1 এবং অংশ 2)

দুর্ভাগ্যক্রমে নোডবক্স খুব শব্দযুক্ত ... গল্ফ করার খুব বেশি জায়গা নেই।

পার্ট 1 76 বাইট

for  i  in  range  (  1 ,  int  (  input  (  ) ) + 1 ) : print ( i ,end=" ")

পার্ট 2 ( নোডবক্স লাইব্রেরি ব্যবহার করে ) 76 বাইট

import en.number as n
for i in input().split():print(n.ordinal(n.spoken(i)))

5
আপনার উত্তরটি বৈধ হতে হবে; এই ক্ষেত্রে, আপনার অংশ 2 আপনার 1 অংশের চেয়ে দীর্ঘ, যা অবৈধ। আপনি কোনও উত্তরকে "প্রতিদ্বন্দ্বী" হিসাবে চিহ্নিত করতে এবং একটি অবৈধ জমা দিতে পারবেন না; "অ-প্রতিদ্বন্দ্বী" লেবেলটি ভাষা বা ভাষা সংস্করণগুলিতে জমা দেওয়া চ্যালেঞ্জগুলির জন্য একটি অবমানিত লেবেল যা চ্যালেঞ্জ পোস্টের পরে প্রকাশিত হয়, যা সাধারণত অনুমোদিত নয়, তবে যাইহোক আকর্ষণীয় জমা দেওয়ার জন্য "অ-প্রতিযোগী" অবস্থার অধীনে অনুমোদিত।
হাইপারনিউটারিনো

1
@ হাইপারনিট্রিনো দুঃখিত, আমি ভেবেছিলাম নিয়মগুলি খণ্ড ২ এর চেয়ে কম হওয়া দরকার I

2
প্রযুক্তিগতভাবে, বাহ্যিক লাইব্রেরিগুলি ব্যবহার করা ঠিক আছে বলে মনে হচ্ছে: কোডগল্ফ.মেটা.স্ট্যাকেক্সেঞ্জার.কম
জোনো 2906

1
import en.number as nপ্রতিটি অংশে আপনাকে চারটি বাইট সংরক্ষণ করে।
খুলনায়সথ না'বাড়িয়া

1

জাভাস্ক্রিপ্ট (নোড.জেএস), 47 বাইট / 47 বাইট

একই নোড.জেএস পরিবেশে দুটি ফাংশন, অনুরোধ করা হয়েছিল g(f(n))। এনপিএম প্যাকেজ নম্বর-থেকে-শব্দ ব্যবহার করে ।

পার্ট 1, 47 বাইট (40 বাইট + 7 স্পেস)

n=>H=>{for(i=0;i<n;)console.log(H(++i))}       

পার্ট 2, 47 বাইট

F=>F(require("number-to-words").toWordsOrdinal)

রুনকিটে চেষ্টা করে দেখুন!


জাভাস্ক্রিপ্ট (নোড.জেএস), 48 বাইট / 43 বাইট

পর্ব 1, 48 বাইট

n=>[n,require("number-to-words").toWordsOrdinal]

পার্ট 2, 43 বাইট

([n,F])=>{for(i=0;i<n;)console.log(F(++i))}

রুনকিটে চেষ্টা করে দেখুন!


1

পার্ল 5.10 / কমন লিস্প, 34/26 বাইট

সুতরাং, কমন লিস্পের formatএটি অন্তর্নির্মিত হিসাবে রয়েছে কারণ অবশ্যই এটি রয়েছে।

প্রোগ্রাম 1 (34 বাইট)

say"(format t\"~:r \"$_)"for 1..<>

পার্ল সমস্ত পুনরাবৃত্তি করে। সমতুল্য কমন লিস্প কোড ( (dotimes(i(read)) ...)) প্রচুর গল্ফায়ার পার্লের চেয়ে দীর্ঘ ... for 1..<>। পার্ল প্রচলিত লিস্প কোডের একগুচ্ছ আউটপুট দেয়।

প্রোগ্রাম 2 (26 বাইট)

(loop(eval(read nil nil)))

এটি একটি REPL, পি বিয়োগ। এটি স্ট্যান্ডার্ড ইনপুট পড়ে এবং ভাল, এটি কার্যকর করে। অবসান হয় না, তবে বিধিগুলি স্পষ্টভাবে বলে যে এটি ঠিক আছে।

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