চক্রীয় লেভেনকাইন


45

পটভূমি

যেহেতু বেশিরভাগ পিপিসিজি নিয়ামকরা জানতে পারবেন, একটি একটি প্রোগ্রাম যা রান করার সময় তার নিজস্ব উত্স আউটপুট করে; এবং দুটি স্ট্রিংয়ের মধ্যবর্তী লেভেনস্টেইন দূরত্ব হ'ল একটি স্ট্রিংটিকে অন্য স্ট্রেনে পরিবর্তন করার জন্য সন্নিবেশ, মুছা এবং সম্পাদনাগুলির সর্বনিম্ন সংখ্যা। এই চ্যালেঞ্জের মধ্যে আমরা দুটি ধারণাকে একটি "লেভেনকাইন" - এর সাথে একত্রিত করছি: এমন একটি প্রোগ্রাম যা তার নিজস্ব উত্স কোডকে ছাড়িয়ে যায় তবে একটি চরিত্রের একটি উদাহরণ দিয়ে sertedোকানো, মুছে ফেলা বা আলাদা অক্ষর দিয়ে প্রতিস্থাপন করা হয়। (অন্য কথায়, প্রোগ্রাম এবং এর আউটপুট মধ্যে লেভেনস্টাইন দূরত্ব 1।)

কাজটি

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

এখানে আরও একটি বিধিনিষেধ রয়েছে যা জিনিসগুলিকে আরও শক্ত করে তোলে: এই চক্রের মধ্যে কোথাও দুটি স্বতন্ত্র প্রোগ্রাম অবশ্যই থাকতে হবে যার কোনও অক্ষর নেই সাধারণ (অন্য কথায়, একটি প্রোগ্রামের মধ্যে এমন কোনও চরিত্র নেই যা অন্য প্রোগ্রামের মধ্যেও বিদ্যমান)। আপনার প্রোগ্রামটি তাই ধীরে ধীরে নিজেকে একটি আলাদা চরিত্রের সেটে রূপান্তরিত করতে চলেছে এবং আবার ফিরে আসবে।

যদি আপনি এমন প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করেন যা আউটপুট উত্পাদন করে এমন কোনও প্রোগ্রামে প্রয়োজনীয় অনিবার্য বয়লারপ্লেট থাকে (যেমন, এটিতে printস্টেটমেন্ট লেখার কেবল একটি উপায় এবং আউটপুট সম্পর্কিত কোনও কার্যকর রূপ নেই), আপনি সেই বয়লারপ্লেটটিকে উদ্দেশ্যহীন হিসাবে বিবেচনা করতে পারেন may দুটি প্রোগ্রামের মধ্যে কোন অক্ষর রয়েছে তা নির্ধারণের। কোডটির লেভেনকুইন সম্পত্তি নির্ধারণের উদ্দেশ্যে আপনাকে অবশ্যই এই বয়লারপ্লেটটি গণনা করতে হবে।

ব্যাখ্যা

  • চক্রের প্রতিটি "প্রোগ্রাম" একটি সম্পূর্ণ প্রোগ্রাম বা কোনও ফাংশন হতে পারে। এগুলি সব একই হতে হবে না, উদাহরণস্বরূপ কিছু সম্পূর্ণ প্রোগ্রাম হতে পারে এবং কিছু ফাংশন হতে পারে।
  • চক্রের সমস্ত প্রোগ্রামগুলির আউটপুট একই ফর্ম ব্যবহার করার প্রয়োজন হয় না। উদাহরণস্বরূপ, কিছু স্ট্যান্ডার্ড আউটপুট মাধ্যমে আউটপুট, এবং কিছু স্ট্যান্ডার্ড ত্রুটির মাধ্যমে আউটপুট পারে।
  • আপনার প্রোগ্রামগুলি কোনও ইনপুট ছাড়াই চলবে (বা এমন ভাষাগুলিতে যা কিছু করার জন্য ইনপুট প্রয়োজন, সহজতম ইনপুট)।
  • সঠিক কুইন বিধি প্রযোজ্য; যদিও একটি লেভেনকুইন সত্যিকারের কুইন নয়, আপনি যথাযথ কুইন লেখার সময় এমন কিছু করতে পারেন যা অবৈধ হবে। বিশেষত, নাল প্রোগ্রামটি কখনই সঠিক লেভেনকাইন থেকে বৈধ আউটপুট হয় না (এবং এটি আপনার চক্রের অংশ হতে পারে না)।
  • লেভেনকাইন সীমাবদ্ধতাটি বাইটের চেয়ে অক্ষরের ক্ষেত্রে পরিমাপ করা হয় (যেমন êউত্সটি ইউটিএফ -8 এ এনকোড থাকা অবস্থায়ও একটি অক্ষর)। অ-অক্ষর-মধ্যে-সীমাবদ্ধতা অক্ষরের ক্ষেত্রেও পরিমাপ করা হয়। বিজয়ের শর্তটি অবশ্য বাইটে গণনা করা হয়।

বিজয় শর্ত

চক্র থেকে কমপক্ষে নিম্নলিখিত তিনটি প্রোগ্রাম জমা দিন: সংক্ষিপ্ততম প্রোগ্রাম (বাইটে পরিমাপ করা); এবং চক্র থেকে দুটি প্রোগ্রাম যার কোনও অক্ষর নেই common এটি সম্ভব যে এর মধ্যে দুটি একই এবং এটিও সম্ভব যে তিনটিই আলাদা। স্কোরটি সংক্ষিপ্ততর প্রোগ্রামের বাইটের দৈর্ঘ্যের উপর ভিত্তি করে সংক্ষিপ্ততর হওয়া ভাল, এইভাবে এটি এক ধরণের প্রতিযোগিতা তৈরি করে।


মোছা পোস্টগুলি দেখতে পারে এমন লোকদের জন্য: স্যান্ডবক্স পোস্টটি এখানে ছিল ।

আমি মনে করি চক্রের দৈর্ঘ্য অন্তর্ভুক্ত করার জন্য উত্তরের জন্য এটিও ভাল।
mbomb007

যদি বলি, আউটপুট সম্পাদনের জন্য ভাষার বেশ কয়েকটি ফাংশন রয়েছে তবে তারা সকলেই জুটিবদ্ধভাবে অক্ষর ভাগ করে নেয়?
janrjan জোহানসেন

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

এটি কি একটি হালকা বিট বুদ্ধিমান হতে পারে? মূল উত্স কোড থেকে দূরত্বটি কি 1 বাইট বন্ধ আছে?
ম্যাজিক অক্টোপাস উরন

উত্তর:


34

গোল> <> , 252 167 বাইট

1>'r&ff9++r}}r&f*bc++1z.r}r6=z?Hzznr6rHr}r:ee+6+=z9*5c*+1z . }&z+5c*&H}rebe*b+ke++rHS6PWSb`S6P$$1W5/11b6W6EE/W6EE`S6P$$W61`S6P5W6$5_61P1WW_b_

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

এবং পারস্পরিক স্বতন্ত্র ( যাচাই ) প্রোগ্রাম:

0<CŽB‚‚UGGŽ™™ŽB‚F~GGM–JŽ™ŽRY–[d––ŠŽRŽdŽ™ŽVGRGY–UFQFGM–<J<™B–GQFBd™Ž~F~G‡GGŽd;oRl-7-7so~|;oRl@@-Ms7QKMM3-3-3~R-4sRaaK-3sRaa|;oRl@@sR43M|;oRlQ-sR43@Q{RMlMss3{~{"

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

এটি বেশিরভাগ মিউচুয়ালি এক্সক্লুসিভ কুইন্স চ্যালেঞ্জের আমার উত্তর দ্বারা অনুপ্রাণিত হয়েছে , কুদোসরাও বুবলারের গোল> <> উত্তরটিতে চলেছে ।

এখানে আপনি যাচাই করতে পারেন যাচাইকরণ প্রোগ্রাম । দুর্ভাগ্যক্রমে, এটির মেয়াদ শেষ হয়ে গেছে তবে কোডের একটি বিভাগ কীভাবে অন্য বিভাগটি তৈরি করে তা দেখতে পারেন এবং তারপরে আপনি প্রিন্ট করা শেষ সংস্করণটি অনুলিপি করতে পারেন এবং চালিয়ে যাওয়ার জন্য এটি ইনপুটটিতে আটকান। শেষ পর্যন্ত, আপনি যে প্রথম প্রোগ্রামটি রেখেছিলেন তাতে পৌঁছে যাবেন।

ব্যাখ্যা

কোডের উভয় বিভাগ দুটি বিভাগের সমন্বয়ে গঠিত, প্রকৃত নির্বাহক অংশ এবং কোডের অন্যান্য বিভাগযুক্ত ডেটা। তারা উভয়ই কার্যত অভিন্নভাবে কাজ করে:

তারা একটি পতাকা (কোডের প্রথম অক্ষর, হয় 1বা 0) এর উপর নির্ভর করে । যদি পতাকাটি সেট করা থাকে তবে তারা 252 তম অক্ষরটি নীচে রেখে এটিকে যোগ / বিয়োগ 28করে এবং কোডটিতে সংযোজন করে কোডের অন্যান্য বিভাগটি তৈরি করা শুরু করবে ।

উদাহরণস্বরূপ, উপরের প্রথম প্রোগ্রামের পরে এখানে কোডের প্রথম দুটি পুনরাবৃত্তি রয়েছে:

1>'r&ff9++r}}r&f*bc++1z.r}r6=z?Hzznr6rHr}r:ee+6+=z9*5c*+1z . }&z+5c*&H}rebe*b+ke++rHS6PWSb`S6P$$1W5/11b6W6EE/W6EE`S6P$$W61`S6P5W6$5_61P1WW_b_C

1>'r&ff9++r}}r&f*bc++1z.r}r6=z?Hzznr6rHr}r:ee+6+=z9*5c*+1z . }&z+5c*&H}rebe*b+ke++rHS6PWSb`S6P$$1W5/11b6W6EE/W6EE`S6P$$W61`S6P5W6$5_61P1WW_b_CŽ

অবশেষে যখন এটি সাম্প্রতিক অধ্যায় শেষে ছুঁয়েছে, এটা কোড (দ্বিতীয় চরিত্র ফ্লিপ <করতে >অন্যান্য বিভাগে বিন্দু এবং ফিরে আবার)।

এখানে উভয় বিভাগই একসাথে রয়েছে, প্রথম বিভাগটি নির্বাহ থেকে দ্বিতীয়টি নির্বাহ করতে পরিবর্তিত হতে চলেছে।

1>'r&ff9++r}}r&f*bc++1z.r}r6=z?Hzznr6rHr}r:ee+6+=z9*5c*+1z . }&z+5c*&H}rebe*b+ke++rHS6PWSb`S6P$$1W5/11b6W6EE/W6EE`S6P$$W61`S6P5W6$5_61P1WW_b_CŽB‚‚UGGŽ™™ŽB‚F~GGM–JŽ™ŽRY–[d––ŠŽRŽdŽ™ŽVGRGY–UFQFGM–<J<™B–GQFBd™Ž~F~G‡GGŽd;oRl-7-7so~|;oRl@@-Ms7QKMM3-3-3~R-4sRaaK-3sRaa|;oRl@@sR43M|;oRlQ-sR43@Q{RMlMss3{~{"

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

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

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