দ্বি নির্দেশমূলক কুইন চেইন


9

পিপিসিগিতে ইতিমধ্যে পর্যাপ্ত পরিমাণ কুইন নেই ...

চ্যালেঞ্জ:

আপনার কাজটি একটি "A0" প্রোগ্রাম তৈরি করা। যখন এই প্রোগ্রামটি কোনও ইনপুট ছাড়াই চালিত হয় তখন তা কিছুই করে না। যখন এই প্রোগ্রামটি ইনপুট দিয়ে চালিত হয়, তখন এটি "এ 1" আউটপুট করে। যখন "A1" কোনও ইনপুট না দিয়ে চালানো হয় তখন এটি "A0" কে আউটপুট করে। "A1" ইনপুট দিয়ে চালিত হলে এটি "A2" আউটপুট করে। খুব সুন্দর, "এ (কে)" আউটপুট "এ (কে -১)" আউটপুট আনবে যখন কোনও ইনপুট ছাড়াই চলবে এবং ইনপুট দিয়ে চালিত হলে "A (k + 1)" আউটপুট দেবে will

বিস্তারিত

আমি বিশ্বাস করি এই চ্যালেঞ্জটি যথেষ্ট সহজ; সত্যিই অন্য কোন নিয়ম নেই। প্রতিটি প্রোগ্রামে অবশ্যই কমপক্ষে 1 বাইট থাকতে হবে। আপনি ধরে নিতে পারেন যে ইনপুটটিতে কেবলমাত্র ASCII অক্ষর থাকবে এবং আপনি চাইলে সাদা স্থান উপেক্ষা করতে পারেন, তবে আপনি কোনও নির্দিষ্ট ইনপুট নির্দিষ্ট নাও করতে পারেন। আউটপুটটি STDOUT বা STDERR হতে পারে তবে আপনার সমস্ত প্রোগ্রামের অবশ্যই একটিকে আউটপুট করতে হবে। অন্য একটিতে পাঠ্যও থাকতে পারে (যাতে আপনি STDOUT এ আউটপুট দিতে পারেন এবং তারপরে একটি ত্রুটি সহ প্রস্থান করতে পারেন)। এটি নির্দেশ করার জন্য @ ডেনিসকে ধন্যবাদ।

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

স্কোরটি "A0" প্রোগ্রামের দৈর্ঘ্যের সমান। এটি একটি কোড-গল্ফ চ্যালেঞ্জ হিসাবে, সর্বনিম্ন স্কোর জয়!


আমি ভবিষ্যদ্বাণী করে দুঃখিত যে বেশিরভাগ সাবমিশনগুলিতে একটি (ক) এবং এ (কে + 1) একক চরিত্রের সাথে পৃথক হয়ে ক্রমবর্ধমান স্ট্রিংয়ে যুক্ত হবে :(
স্পার

@ স্পার দুর্ভাগ্যক্রমে, সম্ভবত এটিই ঘটবে। :( ওহ, আমি কীভাবে এর বিরুদ্ধে সুস্পষ্ট নিয়ম তৈরি করব তা আমি বুঝতে পারি না
হাইপারনিউটারিনো

আমি দু'জনের মধ্যে একটিতে আউটপুট দিতে পারি যদি আমি এটির সঠিক ব্যাখ্যা দিই না তবে আমি স্থির নই। যদি আমরা পছন্দসই আউটপুটটি STDOUT এ মুদ্রণ করি তবে এসটিডিআরআরটি খালি থাকতে হবে? কারণ এটি ত্রুটিযুক্তভাবে বাহ্যিকভাবে প্রস্থান করার অনুমতি রয়েছে।
ডেনিস

সব প্রোগ্রাম আলাদা হতে হবে? প্রশ্নটি তা বলে না।

4
এছাড়াও, আমি কি "বিদায়ি কুইন চেইন" এর মতো আরও কিছু মত প্রকাশ করতে পারি? "সুপার মেটা কুইন" অন্যান্য প্রোগ্রামগুলি ছাপানোর প্রোগ্রামের বাইরে পুরোটা বলে না এবং ভবিষ্যতে এই চ্যালেঞ্জটি অনুসন্ধান করা আরও কঠিন করে তুলবে।
মার্টিন ইন্ডার

উত্তর:


1

পিপ , 28 বাইট

V Y"I#qSti0+i?`V Y`.RPyRtiu"

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

ব্যাখ্যা

এটি স্বল্পতম পরিচিত পাইপ কুইনের একটি পরিবর্তিত সংস্করণ V Y"`V Y`.RPy"। সেই কুইন একটি স্ট্রিং সংজ্ঞায়িত করে, এটিকে yভেরিয়েবলের সাথে ঝাঁকুনি দিয়ে এবং তারপরে মূল্যায়ন করে কাজ করে। যখন মূল্যায়ন করা হয়, স্ট্রিংটি এর পুনরারম্ভ করে y(এভাবে yডাবল উদ্ধৃতিতে মানটি মোড়ানো হয় ) এবং `V Y`এর সম্মুখভাগে প্যাটার্নটি আক্ষরিকভাবে সংযুক্ত করে।

আমাদের কৌশল একটি করা হয় 0প্রোগ্রামে, তারপর প্রতিস্থাপন 0সঙ্গে 10যদি ইনপুট ছিল, অথবা প্রতিস্থাপন 10সঙ্গে 0যদি কোন ইনপুট ছিল। (সুতরাং, ক ( কে ) এর মধ্যে কে 1 এর পরে 0 এর সমন্বিত একটি সংখ্যা থাকবে ) 0এবং 10এটি সুবিধাজনক কারণ এই মানগুলির সাথে অন্তর্নির্মিত ভেরিয়েবল ( iএবং tযথাক্রমে) রয়েছে, তাই আমরা প্রকৃত সংখ্যা ব্যবহার না করেই তাদের উল্লেখ করতে পারি ।

সুতরাং পরিবর্তে RPy, আমরা চাই RP yRitযদি ইনপুট ছিল এবং RP yRtiযদি না ছিল। আমরা দুটি কেস এর মানগুলি অদলবদল করে tএবং iযদি ইনপুট ( I#q Sti) থাকে তবে তা একত্রিত করতে পারি RP yRti। (আমরা পরীক্ষা আছে #q, দৈর্ঘ্য , ইনপুটের কারণে ইনপুট পছন্দ 0falsey আছে।)

এখন আমাদের কেবল 0কোডে একটি আক্ষরিক পেতে হবে এবং কোনও আউটপুট তৈরি না করে A0 এর বিশেষ কেসটি পরিচালনা করতে হবে। এটি মিথ্যা হলে পরীক্ষার মাধ্যমে 0+iএবং ফেরার মাধ্যমে উভয়ই সমাধান করা যেতে পারে u:

  • যে কোনও কে > 0 এর জন্য, এ ( কে ) এর নম্বরটি ননজারো এবং অতএব সত্যবাদী (উদাঃ 110+i) হবে।
  • জন্য = 0, এ (নম্বর ) শূন্য হবে:
    • যদি ইনপুট থাকে, iএবং tঅদলবদল হয় এবং i10 0+iহয় এখনও সত্য।
    • যদি কোনও ইনপুট না থাকে iতবে এখনও 0 হয় এবং 0+iএটি মিথ্যা। কুইন কোর পরিবর্তে, আমরা আউটপুট u, যা শূন্য জন্য একটি অন্তর্নির্মিত পরিবর্তনশীল। মুদ্রণ নীল কোন আউটপুট উত্পাদন করে।

ভাল করেছ! একটি যাদুমন্ত্র মত কাজ করে.
হাইপারনিউট্রিনো

1

পাইথন 2, 93 বাইট

একটি পিছনে লাইনফিড আছে।

p=1+2*bool(input())-1;s='print"p=%r+2*bool(input())-1;s=%r*(p>0);exec s"%(p,s)'*(p>0);exec s

ইনপুট দিয়ে এটি ব্যবহার করে দেখুন | ইনপুট ছাড়াই চেষ্টা করুন

এটি আমার অনুরূপ প্রশ্নের উত্তর থেকে সংশোধিত হয়েছে ।

যদি ইনপুট থাকে তবে তা বাড়বে p। সুতরাং ফলে প্রোগ্রাম হতে হবে p=2+..., p=3+...ইত্যাদি


এটি 0 ইনপুট হিসাবে স্বীকৃতি দেয় না
fəˈnɛtɪk

@ ল্লিটেল্যাকস ইনপুটটি উদ্ধৃতি চিহ্নগুলিতে ঘিরে থাকতে হবে (এটি স্টিং হতে হবে)। উত্তরের হাইপারলিঙ্কগুলি দেখুন।
mbomb007

যেমনটি হয়
তেমনই

1
@LliwTelracs ঠিক আছে তারপর সংখ্যা ব্যবহার করার চেষ্টা করবেন না। Sensকমত্য অনুসারে, আমি ব্যবহারের input()পরিবর্তে কোটগুলি দ্বারা প্রদত্ত ইনপুটটি ব্যবহার করতে এবং প্রয়োজন করতে পারি raw_input()। আপনি যদি শূন্যটি ইনপুট করতে চান তবে ব্যবহার করুন "0"
mbomb007

চমৎকার সমাধান! আমি প্রত্যাশা করছিলাম সর্বাধিক উত্তরগুলি দৈর্ঘ্যে অসীমভাবে বৃদ্ধি পাবে (প্রযুক্তিগতভাবে এটি উত্তর দেয় তবে একই অর্থে নয়)। ভাল করেছ!
হাইপার নিউট্রিনো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.