অধ্যাপকের বেস বিল্ডিং নম্বর রূপান্তরকারী


12

বাদামের গণিতের এই অধ্যাপক তাদের প্রতিযোগীদের এমনকি উইলসেটকেও শিয়ালের জন্য নিশ্চিত সিস্টেম ব্যবহার করে তাদের সমস্ত গবেষণা এনকোড করতে চান!

এই লক্ষ্যে অধ্যাপক সিদ্ধান্ত নিয়েছেন যে তারা যে সংখ্যাটি লিখেছেন কেবল তার ভিত্তিই নয় তবে সেই সংখ্যার প্রতিটি অঙ্কের, যার ভিত্তিতে অঙ্কটি নিজেকে খুঁজে পাবে (ডান থেকে গণনা করা, 1 দিয়ে শুরু করা)। উদাহরণ স্বরূপ:

0 নম্বরের একটি অঙ্ক রয়েছে, সুতরাং এটি বেস 1: 0 তে উপস্থাপিত হয়

সংখ্যা 1 বেস দশে এক অঙ্ক হবে, কিন্তু আমাদের অধ্যাপকের সিস্টেমে এটি বৈধ নয়। প্রথম স্থানটি কেবল বেস 1 ডিজিটের জন্য সংরক্ষিত! এর অর্থ এটি দ্বিতীয় স্থানে যেতে হবে যেখানে বেস 2 এর অনুমতি রয়েছে: 10

সংখ্যা 2 এর কমপক্ষে বেস 3টি লিখতে হবে: 100

তবে এখন 3 নম্বরটি দ্বিতীয় স্থানে অঙ্ক পরিবর্তন করে লেখা যেতে পারে: 110

এবং 4 হিসাবে: 200

ধারণাটি পেতে আপনাকে আরও কয়েকটি উদাহরণ এখানে দেওয়া হয়েছে:

5: 210

6: 1000

7: 1010

8: 1100

9: 1110

10: 1200

11: 1210

12: 2000

13: 2010

14: 2100

15: 2110

16: 2200

17: 2210

18: 3000

এই সিস্টেমটি ব্যবহার করে অধ্যাপকের নোটগুলি তাদের ব্যতীত অন্য কারও কাছে বোঝা যাবে না এবং তারা শেষ পর্যন্ত বিশ্বকে দখল করতে পারে !!!! রাতে ভাল ঘুম।

অবশ্যই এনকোডিং পদ্ধতিটি যতটা সম্ভব অস্পষ্ট হতে হবে।


আপনার টাস্কটি 10 ​​কোড স্নিপেটগুলি লিখতে হয়, প্রতিটি বেসের 10 টি সংখ্যার প্রতিনিধিত্ব করে

0 1 2 3 4 5 6 7 8 9

রূপান্তর করার জন্য সংখ্যার ক্রমের সাথে একত্রিত হয়ে অধ্যাপকের ডায়াবোলিকাল নম্বর পদ্ধতিতে লিখিত একটি সংখ্যা তৈরি করবে (আউটপুট পদ্ধতিটি আপনার পছন্দ হতে পারে তবে কেবল 0-9 সংখ্যাটি ব্যবহার করে একটি মানব পাঠযোগ্য সংখ্যা হতে হবে)

উদাহরণস্বরূপ যদি আমার স্নিপেটগুলি হয়:

0 = নগদ 1 = উদাহরণ, 2 = কোড, 3 = জিএলএফ এবং 9 = পরীক্ষা

তারপর

19 = উদাহরণস্বরূপ -> 3010

20 = CODEMONKEY -> 3100

21 = CODEEXAMPLE -> 3110

22 = কোডোড -> 3200

23 = কোডগোল্ফ -> 3210

10 টির বেশি সংখ্যক বা নেতিবাচক সংখ্যাযুক্ত কোনও ইনপুট নম্বর বিবেচনা করা দরকার না, যদিও আপনি অতিরিক্ত সংখ্যার জন্য কোড লিখতে চান তবে আপনি অতিরিক্ত কুডো পাবেন। এটি কোড গল্ফ, তাই সংক্ষিপ্ত উত্তর (সমস্ত স্নিপেটের সম্মিলিত বাইট মোট ব্যবহার করে) জিতবে এবং মানক লুফোলগুলি অনুমোদিত নয়।

যোগ করুন: বেস 1 এর 0 টি সঠিক উপস্থাপনা কিনা তা শুরু করার আগে আমি আপনাকে এই স্মরণ করিয়ে দিতে চাই যে এই অধ্যাপক বাদাম। এটার সাথে বসবাস.


1
দ্রষ্টব্য: অধ্যাপকের সিস্টেমটি ফ্যাকটোরিয়াল নম্বর সিস্টেম হিসাবেও পরিচিত ।
ETH প্রোডাকশনগুলি


@ এথ প্রডাকশন আমি কখনও বলিনি যে অধ্যাপকের এনকোডিং ভাল ছিল ।
জো ব্লগগুলি

@ ক্রিটিক্সিলিথোস এর জন্য আপনাকে ধন্যবাদ! আমি এটি নিশ্চিতকরণ হিসাবে ব্যবহার করার জন্য খুঁজছিলাম।
জো ব্লগগুলি

4
পিপিসিগিতে আপনাকে স্বাগতম, উপায় :-)
ইটিএইচ প্রডাকশন

উত্তর:


1

গণিত (REPL পরিবেশ), 858 মোট বাইট

9 ডিজিটের জন্য এখানে 86-বাইট কোড স্নিপেট রয়েছে:

1;ValueQ@a||(a=0;b=3);a=10a+9;b++;FromDigits[a~IntegerDigits~MixedRadix@Range[b,1,-1]]

1 থেকে 8 সংখ্যার কোড স্নিপেটগুলি অভিন্ন, 9 বাদে উপযুক্ত অঙ্ক দ্বারা প্রতিস্থাপন করা হয়। 0 সংখ্যার কোড স্নিপেট অভিন্ন, কেবল তা ছাড়া +9মুছে ফেলা হয়।

a~IntegerDigits~MixedRadix@Range[b,1,-1]aযতক্ষণ না সংখ্যার সংখ্যার bচেয়ে কমপক্ষে লম্বা হয় ততক্ষণের সংখ্যা-সিস্টেমের সংখ্যাগুলির তালিকা গণনা করে ; FromDigitsঅঙ্কের তালিকাটিকে আউটপুটের উদ্দেশ্যে নিয়মিত বেস -10 পূর্ণসংখ্যায় রূপান্তর করে। (তালিকার কোনও উপাদান 9 এর বেশি হয়ে গেলে মজার কিছু ঘটে))

গাণিতিকের আরপিএল পরিবেশে, আউটপুট দমন করার জন্য সেমিকোলন দিয়ে গণনা শেষ করা যেতে পারে; সেমিকোলন-বিচ্ছিন্ন চেইনে কেবলমাত্র শেষ আউটপুট প্রদর্শিত হবে। আমরা aস্নিপেটস দ্বারা নির্ধারিত পূর্ণসংখ্যা এবং bসংখ্যালঘু সিস্টেমের সংখ্যাগুলির সংখ্যার উপরও আবদ্ধভাবে সংজ্ঞায়িত করি । কমান্ড ValueQ@a||(a=0;b=3)এই পরিবর্তনশীলগুলি আরম্ভ করে যদি তারা অবিচ্ছিন্ন হয় (যেমন, প্রথম স্নিপেটে) এবং এগুলিকে অন্যথায় ছেড়ে দেয়; তারপরে a=10a+9;b++পুনরাবৃত্তি চালায়। পরিশেষে, প্রাথমিকটি 1;হ'ল স্নিপেটগুলি একসাথে আটকানোর জন্য: এটি মধ্যবর্তী গণনাগুলিকে 1 দ্বারা গুণ করে (যা আমরা কখনই দেখি না)।


আমি সেমিকোলন আপত্তি উপভোগ করি।
জো ব্লগগুলি

0

গুরুবি, 790 810 980

এখানে দ্বিতীয় চেষ্টা রয়েছে, মূলত যে কোনও শেলের মধ্যে, একটি নতুন লাইন ("\ n") ছাড়াই ক্যারিজ রিটার্ন ("\ r") প্রিন্ট করা পূর্ববর্তী মুদ্রিত লাইনটি ওভাররাইট করে দেবে, শেষ পর্যন্ত নিশ্চিত করে যে কেবল শেষ বিট মুদ্রিত হবে (এটি চূড়ান্ত ফলাফল) দেখানো হয়েছে।

এটি অবশ্যই শেলের মধ্যে চালানো উচিত ruby name_of_file.rb

এটি সীমাবদ্ধ দৈর্ঘ্যের ধনাত্মক সংখ্যার জন্য কাজ করে।

কোডটি নীচে স্নিপেটের দশটি অনুলিপি X(শীর্ষে) সাথে 0-9 থেকে অঙ্কগুলি প্রতিস্থাপন, প্রতি স্নিপেটে একটি করে one

->*t{n,d,o="X#{t}".toi,0,''
dw{n,r=n.dm d+=1;o.pr r.ts;n>0}
$>.fu
pr"\r",o
o}

এটি, প্রতিনিধিত্বকারী স্নিপেট (উদাহরণস্বরূপ) 8 এর মতো দেখতে পাবেন:

->*t{n,d,o="8#{t}".toi,0,''
dw{n,r=n.dm d+=1;o.pr r.ts;n>0}
$>.fu
pr"\r",o
o}

চ্যালেঞ্জটি বলেছে যে স্নিপেটগুলি একাধিক-সংখ্যা সংখ্যার উপস্থাপন করতে "সংযুক্ত" হওয়া দরকার, সুতরাং, কোনও সংখ্যায় একটি সংখ্যা সংযোজন করার জন্য, এটি কেবল সংখ্যার শেষে বর্গাকার বন্ধনীগুলিতে রাখুন। সুতরাং, 103 সংখ্যা (দশমিকায়) হবে:

->*t{n,d,o="1#{t}".toi,0,''
dw{n,r=n.dm d+=1;o.pr r.ts;n>0}
$>.fu
pr"\r",o
o}[->*t{n,d,o="0#{t}".toi,0,''
dw{n,r=n.dm d+=1;o.pr r.ts;n>0}
$>.fu
pr"\r",o
o}[->*t{n,d,o="8#{t}".toi,0,''
dw{n,r=n.dm d+=1;o.pr r.ts;n>0}
$>.fu
pr"\r",o
o}[]]]

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