সিরিজ সম্পর্কে
প্রথমে, আপনি অন্য কোনও কোড গল্ফ চ্যালেঞ্জের মতো এটি ব্যবহার করতে পারেন এবং সিরিজটি মোটেও চিন্তা না করেই এর উত্তর দিতে পারেন। তবে, সমস্ত চ্যালেঞ্জ জুড়ে একটি লিডারবোর্ড রয়েছে। প্রথম পোস্টে সিরিজ সম্পর্কে আরও কিছু তথ্যের সাথে আপনি লিডারবোর্ডটি সন্ধান করতে পারেন ।
হোল 8: একটি অসীম তালিকা পরিবর্তন করুন
আপনার এমন একটি ফাংশন বা প্রোগ্রাম লিখতে হবে যা ইনপুট হিসাবে অসীম তালিকাকে নিয়ে যায় এবং সেই তালিকার একটি পরিবর্তিত সংস্করণ দেয়।
অসীম I / O সম্পর্কে
এই চ্যালেঞ্জটির জন্য আপনি ইনপুট নিতে এবং আউটপুট উত্পাদন করতে পারেন এমন বেশ কয়েকটি উপায় রয়েছে:
- আপনি হয় ইতিবাচক পূর্ণসংখ্যার একটি তালিকা, বা এর একটি স্ট্রিং উপস্থাপনা, বা একটি স্ট্রিং বা মুদ্রণযোগ্য ASCII অক্ষরের তালিকা (0x20 থেকে 0x7E, অন্তর্ভুক্ত) নিতে পারেন। আউটপুট ফর্ম্যাট অবশ্যই ইনপুট বিন্যাসের সাথে মেলে। আপনি যে বিকল্পটি চয়ন করেন তা বিবেচনা না করেই আমি এখন থেকে ডেটাটিকে "তালিকা" হিসাবে উল্লেখ করব।
- আপনি অসীম স্ট্যান্ডার্ড ইনপুট স্ট্রিম থেকে তালিকাটি পড়তে পারেন এবং অসীম মানক আউটপুট স্ট্রিমে অবিচ্ছিন্নভাবে আউটপুট লিখতে পারেন। সমাধানটি আউটপুট স্ট্রিমটি নিয়মিতভাবে লিখিত এবং ফ্লাশ হয় তা নিশ্চিত করার জন্য কোনও নির্দিষ্ট মান বা মানগুলির ক্রমের উপর নির্ভর করতে হবে না (উদাহরণস্বরূপ আপনি যখনই
5
ইনপুট তালিকায় থাকবেন তখন কেবল আউটপুট লিখতে পারবেন না )। অবশ্যই, আপনি যদি কোনও তালিকার একটি স্ট্রিং উপস্থাপনা পড়ে থাকেন তবে তালিকা বিভাজকের মুখোমুখি হওয়া পর্যন্ত অপেক্ষা করা ভাল fine - যে ভাষাগুলি তাদের সমর্থন করে, আপনি একটি ফাংশন লিখতে পারেন যা একটি অলস অসীম তালিকা বা স্ট্রিং গ্রহণ করে এবং ফেরত দেয়।
- তাদের সমর্থন করে এমন ভাষায় আপনি একটি অসীম জেনারেটর প্রয়োগ করতে পারেন যা অন্য জেনারেটরটিকে ইনপুট হিসাবে গ্রহণ করে।
- বিকল্পভাবে, আপনি কোনও ফাংশন লিখতে পারেন যা কোনও আর্গুমেন্ট নেয় না এবং প্রতিবার যখন বলা হয় তখন একটি আউটপুট মান দেয়। এই ক্ষেত্রে, আপনি ধরে নিতে পারেন যে কোনও ফাংশন সংজ্ঞায়িত করা হয়েছে যা কোনও আর্গুমেন্ট নেয় না এবং প্রতিবার যখন বলা হয় পরবর্তী ইনপুট মানটি প্রদান করে। আপনি ফাংশনটির নাম নির্দ্বিধায় চয়ন করতে পারেন।
আপনি ধরে নিতে পারেন যে আপনার প্রোগ্রামটি চিরকাল চলে এবং সেই অসীম স্মৃতি উপলব্ধ। (একটি সীমাবদ্ধ মেমরির সাথে এটি সমাধান করা সম্ভব তবে এর অর্থ হ'ল আপনাকে মেমরি ফাঁস করার অনুমতি দেওয়া হয়েছে))
এলোমেলোতা সম্পর্কে
অসীম ইনপুটটির অবস্থান i তে যে কোনও মান v পড়তে হবে তার জন্য অবশ্যই অসীম আউটপুটটির i-9 থেকে i + 9 পজিশনের কোনওটিতেই শেষ হওয়ার ইতিবাচক সম্ভাবনা থাকতে হবে (যদি না যে অবস্থানটি নেতিবাচক না হয়) )। এই সম্ভাবনাগুলি বিভিন্ন আউটপুট পজিশনের জন্য বা এমনকি বিভিন্ন ইনপুট পজিশনের জন্য এক হতে হবে না। এটি ঠিক আছে যদি আপনার সমাধানটি আরও দূরের অবস্থানগুলিতে মানগুলি পরিবর্তন করতে পারে।
অতএব, এটি প্রয়োজনীয় নয় যে আপনার সমাধানটি প্রথম মানটির খুব নীচে তালিকার নীচে পরিবর্তন করতে পারে, বা এটি খুব দেরী মানটিকে প্রথম অবস্থানে নিয়ে যেতে পারে, যদিও এটি ঠিক আছে, যতক্ষণ না সমস্ত অবস্থান থেকে 9 পদক্ষেপ রয়েছে as ইনপুট সম্ভব।
উদাহরণস্বরূপ, আপনি যদি ইনপুট হিসাবে নিম্নলিখিত স্ট্রিংটি নেন, তবে আউটপুটটিতে অবশ্যই শেষ হতে হবে এমন ___
সমস্ত অবস্থান নির্দেশ করে X
:
___________________
abcdefghijklmnopqrstuvwxyzXabcdefghijklmnopqrstuvwxyz...
যদি আপনার ভাষায় অন্তর্নির্মিত এলোমেলো সংখ্যা জেনারেটরের অভাব হয় বা আপনি এটি ব্যবহার করতে না চান তবে আপনি ইনপুট হিসাবে অতিরিক্ত বীজের মূল্য নিতে পারেন এবং বীজটি ব্যবহার করে আপনার নিজস্ব উপযুক্ত আরএনজি প্রয়োগ করতে পারেন । এই পৃষ্ঠাটি এটির জন্য সহায়ক হতে পারে।
আপনার সমাধান প্রকৃত বিতরণে নির্বিশেষে, এটি অবশ্যই অবশ্যই সীমাবদ্ধ (তবে স্বেচ্ছাচারিত) সময়ের পরে পরবর্তী মানটি তৈরি করে।
আপনার বাস্তবায়ন কীভাবে এই প্রয়োজনীয়তাগুলি পূরণ করে সে সম্পর্কে একটি সংক্ষিপ্ত বিবরণ অন্তর্ভুক্ত করুন।
স্কোরিং
এটি কোড-গল্ফ , তাই সংক্ষিপ্ততম বৈধ উত্তর - বাইটগুলিতে মাপা - জয় w
লিডারবোর্ড
সিরিজের প্রথম পোস্টটি লিডারবোর্ড উত্পন্ন করে।
আপনার উত্তরগুলি প্রদর্শিত হবে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে প্রতিটি উত্তর শিরোনাম দিয়ে শুরু করুন:
# Language Name, N bytes
N
আপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:
# Ruby, <s>104</s> <s>101</s> 96 bytes
(ভাষাটি বর্তমানে দেখানো হয়নি, তবে স্নিপেটের প্রয়োজন এবং এটি বিশ্লেষণ করতে পারে এবং ভবিষ্যতে আমি একটি উপ-ভাষা লিডারবোর্ড যুক্ত করতে পারি))