একটি এমইউ ধাঁধা সমাধানকারী তৈরি করুন


16

পাতানো ধাঁধা একটি ধাঁধা যা আপনি খুঁজে বের কিনা আপনি চালু করতে পারেন MIমধ্যে MUনিম্নলিখিত কার্যকলাপগুলি দেওয়া হলে

  1. যদি আপনার স্ট্রিংটি শেষ হয় Iতবে আপনি Uশেষের দিকে একটি যুক্ত করতে পারেন । (যেমন MI -> MIU)

  2. যদি আপনার স্ট্রিংটি শুরু হয় M, আপনি Mস্ট্রিংয়ের পরে অংশটির একটি অনুলিপি যুক্ত করতে পারেন ।
    (যেমন MII -> MIIII)

  3. যদি আপনার স্ট্রিংটিতে পরপর তিনটি থাকে I, আপনি এগুলিকে একটিতে রূপান্তর করতে পারেন U
    (যেমন MIII -> MU)

  4. যদি আপনার স্ট্রিংয়ে পরপর দুটি থাকে তবে Uআপনি সেগুলি মুছতে পারেন। (যেমন MUUU -> MU)

আপনার কাজটি এমন কোনও প্রোগ্রাম তৈরি করা যা এটি নির্ধারণ করে যে এটি কোনও স্টার্ট এবং ফিনিস স্ট্রিংয়ের জন্য কার্যক্ষম কিনা।

আপনার প্রোগ্রামটি ইনপুট হিসাবে দুটি স্ট্রিং নেবে। প্রতিটি স্ট্রিংয়ে নিম্নলিখিতটি থাকবে:

  • এক M

  • উনিশ I'র এবং Uএর গুলি একটি স্ট্রিং ।

trueদ্বিতীয় স্ট্রিংটি প্রথম স্ট্রিং থেকে falseপৌঁছতে সক্ষম হলে এবং (বা ওয়াইপিএলআরটি) যদি তা না হয় তবে আপনার প্রোগ্রামটি (বা আপনার প্রোগ্রামিং ভাষার প্রতিনিধিত্বের এটি / ওয়াইপিএলআরটি) ফিরে আসবে ।

ইনপুট এবং আউটপুট উদাহরণ:

MI  MII
true

MI  MU
false

MIIIIU  MI
true

যে কোনও ভাষাতে সংক্ষিপ্ততম কোডটি এই জিততে পারে।


8
আমি বর্তমানে গডেল, এসচার, বাচ পড়ছি এবং এর অধ্যায়গুলির উপর ভিত্তি করে একটি "18-হোল গল্ফ কোর্স" করার বিষয়ে চিন্তাভাবনা করেছি। অনুমান করুন আমি এখন একটি নতুন "ছিদ্র 1" সন্ধান করব। ;)
মার্টিন ইন্ডার

এটি কেবল একটি গ্রাফের পুনঃব্যবহারযোগ্য প্রশ্ন, যার সারমর্মটি আগে অনেকবার জিজ্ঞাসা করা হয়েছিল।
পিটার টেলর

1
@ পিটারটেলর আমি মনে করি যে এটির পুনঃব্যবহারযোগ্যতা গ্রাফের স্পষ্ট অনুসন্ধানের মাধ্যমে সমাধান করা সম্ভব হবার একটি ভাল সুযোগ নেই। এমআইইউ বিধিগুলির অনেক কাঠামো রয়েছে, এবং মধ্যবর্তী নোডগুলি অনুসন্ধান না করে পুনঃব্যবহারের জন্য পরীক্ষা করার জন্য যদি সরাসরি অ্যালগরিদম থাকে তবে আমি অবাক হব না। উদাহরণস্বরূপ, পৌঁছনযোগ্য নোডগুলি MIহুবহু M(I|U)*যেখানে সংখ্যাটি I3 এর একক নয়, এবং এই জাতীয় সরাসরি চেক অবশ্যই সংক্ষিপ্ত কোড তৈরি করে। এছাড়াও, আমি মধ্যবর্তী পদক্ষেপের জন্য প্রয়োজনীয় স্ট্রিংগুলির দৈর্ঘ্যের উপর আবদ্ধ একটি প্রি-প্রাইরি সম্পর্কে জানি না, সুতরাং সরাসরি অনুসন্ধান কেবল অবৈজ্ঞানিক হতে পারে।
xnor

1
আমি এই সমস্যাটি সম্পর্কে কিছুক্ষণ ভেবেছি এবং এমন কোনও সমাধানের কাছে পৌঁছাতে পারি নি, যা জোর-জোর নয়। যদি কেউ কামড় না দেয় তবে আমি প্রশ্নের একটি সহজ সংস্করণ পোস্ট করার পরামর্শ দিচ্ছি, সম্ভবত MIকোনও প্রদেয়যোগ্য স্ট্রিং থেকে শুরু করে কোনও ডেরিভেশন দেবে ।
xnor

1
IMসরবরাহ করা হলে বা আউটপুটটি কী হওয়া উচিত MUMMI?
বিটা ক্ষয়

উত্তর:


7

এসডাব্লুআই প্রোলগ, 183 টি অক্ষর

m(A,A).
m([i],[i,u]).
m([i,i,i|T],B):-m([u|T],B).
m([u,u|T],B):-m(T,B).
n([m|A],[m|B]):-(m(A,B);append(A,A,X),m(X,B)).
n(A,B):-m(A,B).
s(A,B):-atom_chars(A,X),atom_chars(B,Y),n(X,Y).

কিছু প্রোলোগ সম্পর্কে কীভাবে, (যেহেতু 6 মাসে কেউ উত্তর দেয়নি)। চালানোর জন্য, কেবল "গুলি (মাই, মিউ) ব্যবহার করুন। কোডটি অণুগুলিকে চরগুলিতে বিভক্ত করে, তারপরে সমাধানটির সন্ধান করে।


2
এটি অন্যায়ভাবে মিথ্যা প্রত্যাবর্তন করে s(mi,miiii)এবং সাধারণভাবে প্রমাণ হিসাবে বিধি 2 এর একাধিক প্রয়োগের প্রয়োজন হয় anything
অ্যালগরিদমশর্ক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.