এই ক্লাসিক ধাঁধা বই গেম এনপি-সম্পূর্ণ?


10

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

এখন, আমরা যদি শব্দের জন্য একটি নির্দিষ্ট আকারের বর্ণমালা ধরে নিই, সিদ্ধান্ত নিচ্ছেন যে বোর্ডের পাশের দৈর্ঘ্যটি যদি হয় তবে আমরা কেবলমাত্র তালিকার প্রতিটি শব্দ ব্যবহার করে একটি বোর্ডের বৈধ সমাধান দিয়ে পূরণ করতে পারি কিনা এবং কেবল একবার এনপি-সম্পূর্ণ সমস্যা, অনির্ধারিত?

উত্তর:


6

একটি পুরানো পোস্ট উত্তর দেওয়ার জন্য দুঃখিত।

আমি এটি সম্পর্কে ভাবছিলাম এবং আমি মনে করি যে একটি নির্দিষ্ট বর্ণমালার সমস্যাটিও এনপি-সম্পূর্ণ।

আমি এই শব্দটির সমস্যার জন্য 1-ইন-3 স্যাটকে হ্রাস করতে চলেছি

গতকাল সমস্যাটি সমাধান করার জন্য আইডিয়া নিয়ে আসতে আমার সমস্যা হচ্ছে। আমি আবার প্রশ্নটি না তাকিয়ে প্রতিটি পরিবর্তনশীলকে আলাদা করতে আমার সমস্যা হয়েছিল এবং আমি বুঝতে পেরেছিলাম যে আপনি লাগানো চিহ্নগুলির সাথে স্কোয়ারগুলি রাখার অনুমতি দিয়েছেন। এটি হ্রাস অনেক সরল। আমার অন্যান্য ধারণাটি ছিল প্রতিটি পৃথক ভেরিয়েবলের জন্য বিভিন্ন দৈর্ঘ্যের শব্দ have

নিরসন

এখন আমি যে গ্যাজেটগুলি ব্যবহার করব তা বর্ণনা করতে চলেছি:

পরিবর্তনশীল গ্যাজেট

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

তারপরে আমরা প্রতিটি ভেরিয়েবলের জন্য দুটি পৃথক উল্লম্ব শব্দ তৈরি করি। সমস্ত শব্দের দৈর্ঘ্য(কেবলমাত্র যদি আমরা শব্দের তালিকায় নকল শব্দকে অনুমতি দিই), যেখানেবাইনারি চেইনের দৈর্ঘ্য ।3+ +|এন||এন|এন

উদাহরণস্বরূপ, বৃহত্তম সূচকটি নম্বর হোক । যখন আমরা বাইনারিতে এই সংখ্যাটি রূপান্তর করি আমরা বাইনারিতে শৃঙ্খলা পাই , এই চেইনের দৈর্ঘ্য তিনটি। সুতরাং প্রতিটি পরিবর্তনশীল শব্দের এই উদাহরণে দৈর্ঘ্য থাকবে ।41006

এখন আমরা প্রতিটি ভেরিয়েবলের জন্য দুটি পৃথক শব্দ তৈরি করি। একটি শব্দের শুরুতে চিহ্ন থাকবে , তারপরে নীচের চিহ্নটি , তারপরে একটি বাইনারি চেইন যা ভেরিয়েবলের সূচকে উপস্থাপন করে এবং আমরা শৃঙ্খলে শূন্যের সাথে প্যাড করি যাতে এটি একই দৈর্ঘ্যের সাথে চেইন এবং অবশেষে প্রতীক শেষে. অবশ্যই প্রতীকগুলি পরিবর্তন করা যেতে পারে।32এন3

অন্য শব্দটি প্রায় একই রকম তবে এতে চিহ্নের পরিবর্তে চিহ্ন থাকবে ।43

উদাহরণস্বরূপ, বৃহত্তম সূচকটি নম্বর হোক । আমাদের সূচক সহ ভেরিয়েবলের জন্য নিম্নলিখিত দুটি শব্দ থাকবে :41

320013 এবং420014

আমরা দেখতে পাচ্ছি যে আমরা জিরো দিয়ে নম্বর বাইনারি পুনরাবৃত্তিকে প্যাড করেছি যাতে এটির দৈর্ঘ্য1|n|

আমাদের এই শব্দগুলি বহুবার অনুলিপি করতে হবে, স্যাট উদাহরণে প্রতিটি ভেরিয়েবলের প্রতিটি ঘটনার জন্য আমাদের প্রতিটি শব্দের একটি অনুলিপি লাগবে। এটি শব্দের তালিকায় নকল তৈরি করবে। বাইনারি চেইনে আরেকটি বাইনারি চেইন যোগ করে আমরা নকলগুলি থেকে মুক্তি পেতে পারি যা ভেরিয়েবলটি অনন্যভাবে চিহ্নিত করে। এই নতুন চেইনটি একটি ভেরিয়েবলের প্রতিটি অনুষ্ঠানকে স্বতন্ত্রভাবে সনাক্ত করবে।

এটি করার জন্য, আমরা কেবল ভেরিয়েবলের প্রতিটি ঘনত্বকে অন্য বাইনারি শৃঙ্খলা বরাদ্দ করি এবং আমরা ভেরিয়েবলের বাইনারি উপস্থাপনার শেষে সেই শৃঙ্খলাটিকে ওলেস করি।

এই নতুন বাইনারি শৃঙ্খলা তৈরি করতে প্রথমে আমাদের প্রতিটি ভেরিয়েবলের জন্য আলাদা সূচক তৈরি করতে হবে, আমরা প্রতিটি সূচকে সবচেয়ে বড় নম্বর কল যেখানে প্রতিটি ভেরিয়েবলের জন্য সনাক্তকারী। এর পরে, আমরা সংখ্যাটিকে একটি বাইনারি চেইনে রূপান্তর এবং তারপরে আমরা চেইনের দৈর্ঘ্য গণনা করি, আমরা এই নম্বরটি কল করি | n i | । তারপরে, প্রতিটি সূচকের জন্য, আমরা ভেরিয়েবলের প্রতিটি সংখ্যার জন্য একটি পৃথক বাইনারি সংখ্যা তৈরি করি। আমরা প্যাড শূণ্যসমূহ সঙ্গে সংখ্যা পর্যন্ত বাইনারি শৃঙ্খল দৈর্ঘ্য হয়ে | n i | যাতে ভেরিয়েবলের প্রতিটি সংখ্যার সাথে সম্পর্কিত সমস্ত শব্দগুলির দৈর্ঘ্য একই হয়। i n iniini|ni||ni|

এটি পরিবর্তনশীল শব্দের ভিতরে সদৃশ থেকে মুক্তি পাবে।

উদাহরণস্বরূপ, ধরুন যে ভেরিয়েবল স্যাট উদাহরণে তিনবার উপস্থিত হবে। আমরা নিম্নলিখিত শব্দ তৈরি:x2

42010014 , 32010103 42010104 এবং 32010113 4201011432010013 4201001432010103 4201010432010113 42010114

ক্লজ গ্যাজেট

প্রতিটি ক্লজ গ্যাজেটের জন্য আমরা তিনটি নতুন অনুভূমিক শব্দ তৈরি করব, প্রতিটি অনুচ্ছেদের শব্দের দৈর্ঘ্য স্কোয়ারের হবে (কেবলমাত্র আমরা শব্দের তালিকায় নকল শব্দকে অনুমতি দিই) if এই প্রতিটি শব্দটির জন্য আমরা এই শব্দগুলি তৈরি করব:6

, 535453 এবং 545353535354535453545353

ধারাটি সন্তুষ্ট করার প্রতিটি সম্ভাব্য পদ্ধতির জন্য আমাদের কাছে একটি পৃথক শব্দের শব্দ রয়েছে, প্রতীক সত্যের কাছে একটি আক্ষরিক সেট উপস্থাপন করে এবং প্রতীক 3 মিথ্যাতে আক্ষরিক সেটকে উপস্থাপন করে। 5 নম্বরটি এটি একটি অনুচ্ছেদের শব্দটি বোঝাতে ব্যবহৃত হয়।435

শব্দের তালিকায় বারবার শব্দ থাকবে, আমরা পরিবর্তনশীল শব্দের স্বতন্ত্রভাবে সনাক্ত করতে যে পদ্ধতিটি ব্যবহার করেছি তা ব্যবহার করে পুনরাবৃত্তিগুলি থেকে মুক্তি পেতে পারি। এটি হ'ল আমরা প্রতিটি ধারাটির জন্য একটি পৃথক বাইনারি চেইন তৈরি করি এবং আমরা প্রতিটি শৃঙ্খলে প্রতিটি শৃঙ্খলে সংযোজনীয় শব্দের সাথে যুক্ত করি। যে আমরা ক্লজ জন্য একটি নতুন সূচক তৈরি করুন এবং আমরা সূচক সবচেয়ে বড় সংখ্যা বাছাই করার জন্য, আপনাকে এই নম্বরে কল হবে । আমরা প্রতিনিধিত্ব মি একটি বাইনারি শৃঙ্খল যেমন এবং আমরা যত এই বাইনারি শৃঙ্খল দৈর্ঘ্য কল | মি | । এখন, আমরা প্রতিটি ধারাটির জন্য 1 নম্বর দিয়ে শুরু করে একটি পৃথক বাইনারি নম্বর তৈরি করি এবং আমরা একটি বাইনারি চেইন তৈরির জন্য শূন্যের সাথে সংখ্যাটি প্যাড করি যার দৈর্ঘ্য রয়েছে | মি |mm|m||m|। আমরা প্রতিটি বাইনারি শৃঙ্খলে ক্লজের সাথে যুক্ত ক্লজ শব্দের সাথে যুক্ত করি।

এখন, বোর্ডে একটি ক্লজ গ্যাজেটের ছবি দেখতে দিন:

উদাহরণ ধারা

এই উদাহরণটি ধারাটি উপস্থাপন করে এবং 3 টির মধ্যে 1 টি হ্রাস করা হচ্ছে ( x 1 ∨ x 2 ∨ x 3 ) ∧ ( x 2 ∨ x 3 ∨ x 4 )(x2∨x3∨x4)(এক্স1∨এক্স2∨এক্স3)∧(এক্স2∨এক্স3∨এক্স4)

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

আমরা যদি শব্দের তালিকার ভিতরে নকলকে অনুমতি না দিয়ে থাকি তবে আমাদের চিত্রটি পরিবর্তন করতে হবে।

চিত্রের ধারাটি সারিটি হয়ে উঠবে: এবং আক্ষরিক কলামগুলি বাম থেকে ডানে হবে:5খ5খ5খ10

, বি 201110 বি এবং বি 21001 খখ201010খখ201110খখ21001খ

যেখানে প্রতীক অর্থ ফাঁকা বর্গক্ষেত্রখ

একটি উদাহরণ দেখুন:

ধারা, কোন পুনরাবৃত্তি

পরিবর্তনশীল ধারাবাহিকতা গ্যাজেট

এটি এমন একটি গ্যাজেট যা নিশ্চিত করে যে প্লেয়ারটি কেবল একটি ভেরিয়েবলের সমস্ত আক্ষরিক কলামের জন্য একই মান সঞ্চার করতে পারে।

আমাদের প্রতিটি ভেরিয়েবলের জন্য একটি নতুন গ্যাজেট থাকবে

আমরা প্রতিটি গ্যাজেটের জন্য দুটি নতুন শব্দ তৈরি করব।

শব্দের দৈর্ঘ্য একটি ভেরিয়েবলের সংখ্যার উপর নির্ভর করবে। একটি শব্দের দৈর্ঘ্য যেখানে k হল একটি ভেরিয়েবলের সংখ্যার সংখ্যা। সুতরাং ভেরিয়েবল এক্স 2 যদি স্যাট ইন দৃষ্টান্তে দু'বার উপস্থিত হয় তবে শব্দটির দৈর্ঘ্য চারটি হবে। দুটি শব্দের মধ্যে একটি চ্যানেলটি 63৩ কে বার পুনরাবৃত্তি করে গঠিত হয় , যেখানে k হল ভেরিয়েবলের সংখ্যার সংখ্যা। অন্য শব্দটি 64 কে বার শৃঙ্খলা পুনরাবৃত্তি করে গঠিত হয় , যেখানে কে স্যাট উদাহরণের মধ্যে পরিবর্তনশীল সংখ্যার সংখ্যা হ্রাস পাচ্ছে।2*টটএক্স263 ট64 ট

উদাহরণস্বরূপ, যদি কোনও ভ্যারিয়েবল এর দুটি অ্যাকুরিয়েন্স থাকে তবে সংশ্লিষ্ট ভেরিয়েবল অ্যাসাইনমেন্ট গ্যাজেটের সাথে সম্পর্কিত শব্দগুলি হ'ল:এক্স2

এবং 646463636464

যদি আমরা বারবার শব্দগুলি এড়াতে চাই তবে লক্ষ্য করুন যে প্রতিটি ধারাবাহিকতা গ্যাজেটটি একটি ভিন্ন ভেরিয়েবলের অন্তর্গত। সুতরাং আমরা বাইনারি চেইন যুক্ত করতে পারি যা এই গ্যাজেটের জন্য আমরা যে দুটি শব্দ তৈরি করেছি তার প্রতিটি ভেরিয়েবলকে চিহ্নিত করে identif

এখন আসুন এই গ্যাজেটের উদাহরণ চিত্রটি দেখুন:

পরিবর্তনশীল ধারাবাহিকতা গ্যাজেট

এক্স2(এক্স1∨এক্স2∨এক্স3)∧(এক্স2∨এক্স3∨এক্স4)

3434। আমরা এই গ্যাজেডের বাকী শব্দটি অন্য সারিতে রাখতে পারি

আমরা যদি শব্দের তালিকায় নকলকে অনুমতি না দিয়ে থাকি তবে উদাহরণ চিত্রের ভিতরে থাকা শব্দগুলি হ'ল:

সারিগুলির জন্য:

6খ6খ২0106খ6খ২010

কলামগুলির জন্য:

খ201001খখ201010খ

যেখানে প্রতীক খখ

একটি উদাহরণ দেখুন:

ধারাবাহিকতা গ্যাজেট, পুনরাবৃত্তি না

ক্লজ ডাম্প গ্যাজেট

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

এটির সাহায্যে আমরা হ্রাসটি শেষ করেছি, কারণ আমরা দাবি করেছি যে হ্রাসের জন্য আমাদের কেবল 6 টি প্রতীক প্রয়োজন।

উদাহরণ

পূর্ববর্তী ব্যাখ্যাটি যদি বিভ্রান্তিকর হয় তবে এখানে 3 স্যাট-এর 1 পজেটিভ উদাহরণের উদাহরণ রয়েছে যা এই শব্দের সমস্যায় হ্রাস পেয়েছে:

উদাহরণ বোর্ড

যদি আমরা বারবার শব্দগুলি অস্বীকার করি:

উদাহরণ বোর্ড, কোন পুনরাবৃত্তি

হ্রাস করা উদাহরণটি হ'ল:

(এক্স1∨এক্স2∨এক্স3)∧(এক্স2∨এক্স3∨এক্স4)


এই পোস্ট করার জন্য আপনাকে ধন্যবাদ! স্ট্যাক এক্সচেঞ্জের একটি দুর্ভাগ্যজনক বৈশিষ্ট্য হ'ল দীর্ঘ উত্তরগুলি কারও দ্বারা পঠিত হওয়ার সম্ভাবনা নেই তাই আপনি এখানে কাজ করেছেন এমন টোন থেকে আপনার পক্ষে খুব বেশি ভোট পাওয়ার সম্ভাবনা খুব কম। আমি এটি পড়ার চেষ্টা করব তবে, আমি যদি সত্যবাদী হয়ে থাকি তবে একটি ভাল সুযোগ আছে যা আমি এটির কাছাকাছি পাব না।
— ডেভিড Richerby

2
@ ডেভিডরিচার্বি জজা হ্যাঁ আমি এই প্রশ্নটি কিছুক্ষণের জন্য ভাবছিলাম। আমি ভেবেছিলাম যে আমি যখন এই উত্তরটি পোস্ট করব তখন প্রত্যেকেই এটির উপরে উঠে যাবে। ঘটেনি। ভাল কিছু নয়। হ্রাস সম্পর্কে আপনার যদি প্রশ্ন থাকে তবে আপনি আমাকে জিজ্ঞাসা করতে পারেন
— রোটিয়া

4

আমি মনে করি নির্দেশিত হ্যামিলটোনিয়ান পাথ থেকে নিম্নলিখিত হ্রাস কাজ করে:

জি=(ভী,ই)গুলি,টি∈ভী

ভী∪{*}*ভী

বনাম*বনামবনাম∈ভীবনামতোমার দর্শন লগ করা(তোমার দর্শন লগ করা,বনাম)∈ই

|ভী|

সোপান

|ই|-(|ভী|-1)

গুলি*গুলিটি*টি

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

আমি মনে করি এটি কাজ করে (যথাযথতার প্রমাণ যা আমি স্কেচ করেছিলাম তা হ্যান্ড-ওয়েভ, তবে এখনও)।


1
গুলিটিএন×এনএন

এটি দুর্দান্ত এবং কাজ বলে মনে হচ্ছে, তবে আমার মূল পোস্টের অনুরোধ অনুসারে বর্ণমালার আকার ঠিক করা হয়নি। কোনও স্থির আকারের বর্ণমালা ব্যবহার করার জন্য কি এখনও এই পরিবর্তন হ্রাস করা সম্ভব?
— ব্যবহারকারী 2566092

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