ভূমিকা
জীবনে আপনার লক্ষ্যটি সহজ: ইন্টারনেটে লোককে ভুল প্রমাণ করুন!
এটি করার জন্য আপনি সাধারণত তাদের বক্তব্যগুলি সাবধানতার সাথে বিশ্লেষণ করুন এবং সেগুলির মধ্যে বৈপরীত্য দেখান।
এটি এটিকে স্বয়ংক্রিয় করার সময় এসেছে তবে আমরা যেমন অলস, আমরা সম্ভব লোকদের সর্বনিম্ন প্রচেষ্টা (পড়ুন: সংক্ষিপ্ততম কোড) দিয়ে ভুল প্রমাণ করতে চাই।
সবিস্তার বিবরণী
ইনপুট
আপনার ইনপুটটি সম্মিলিত স্বাভাবিক ফর্মের একটি সূত্র হবে । বিন্যাসের জন্য, আপনি নীচের ফর্ম্যাটটি ব্যবহার করতে পারেন বা আপনার নিজের ভাষার প্রয়োজন অনুসারে নিজের নিজস্ব সংজ্ঞা দিতে পারেন (যদিও আপনি খাঁটি সিএনএফের চেয়ে বেশি ফর্ম্যাটে এনকোড করতে পারবেন না)। পরীক্ষার কেসগুলি (এখানে) নীচের বিন্যাসে সরবরাহ করা হয়েছে (যদিও এটি নিজের তৈরি খুব বেশি কঠিন হবে না)।
আপনার ইনপুটটি ভেরিয়েবলের তালিকার তালিকার একটি তালিকা হবে (আপনি এটি স্ট্রিং হিসাবেও পড়তে পারেন / স্ট্রিংগুলির প্রয়োজন হতে পারে)। ইনপুটটি একটি কনজেক্টিভ নরমাল ফর্ম (সিএনএফ) এর একটি সূত্র যা ধারাগুলির সেট হিসাবে লেখা , প্রতিটি দুটি তালিকার একটি তালিকা। ধারাটিতে প্রথম তালিকাটি ধনাত্মক আক্ষরিক (ভেরিয়েবল) এনকোড করে, দ্বিতীয় তালিকার মধ্যে নেতিবাচক (অবহেলিত) লিটারাল (ভেরিয়েবল) এনকোড হয়। ধারাটিতে প্রতিটি পরিবর্তনশীল একত্রে OR'ed হয় এবং সমস্ত ধারাগুলি একসাথে AND'ed হয়।
এটি পরিষ্কার করার জন্য [[[A,B],[C]],[[C,A],[B]],[[B],[A]]]
:
(A OR B OR (NOT C)) AND (C OR A OR (NOT B)) AND (B OR (NOT A))
আউটপুট
আউটপুটটি বুলিয়ান, যেমন কিছু সত্যবাদী মান বা কিছু মিথ্যা মান।
কি করো?
এটি সহজ: পরীক্ষা করা হয়েছে যে হাতে দেওয়া সূত্রটি সন্তুষ্টযোগ্য কিনা, যেমন সামগ্রিক সূত্রটি "সত্য" উপার্জন করে এমন সমস্ত ভেরিয়েবলের কাছে সত্য এবং মিথ্যা কোনও অ্যাসাইনমেন্ট রয়েছে কিনা তা পরীক্ষা করুন। আপনার আউটপুটটি "সত্য" যদি সূত্রটি তাত্পর্যপূর্ণ হয় এবং এটি "মিথ্যা" না হয় will
মজার ঘটনা: এটি সাধারণ ক্ষেত্রে একটি এনপি-সম্পূর্ণ সমস্যা।
দ্রষ্টব্য: একটি সত্য-টেবিল তৈরি করা এবং ফলাফলের কোনও প্রবেশদ্বার সত্য কিনা তা খতিয়ে দেখার অনুমতি রয়েছে।
কর্নার কেস
যদি আপনি একটি খালি তৃতীয় স্তরের তালিকা পান, তবে সেই ধারাটিতে এমন কোনও (ধনাত্মক / নেতিবাচক) পরিবর্তনশীল নেই - একটি বৈধ ইনপুট।
আপনি চাইলে অন্যান্য কোণার কেস অপরিবর্তিত রাখতে পারেন।
আপনি একটি খালি সূত্র (প্রথম স্তরের তালিকার) উপরও সত্য ফিরে আসতে পারেন এবং একটি ফাঁকা দফা (২ য় স্তরের তালিকা) এর ভিত্তিতে মিথ্যা।
কে জিতলো?
এটি কোড-গল্ফ তাই বাইটের সংক্ষিপ্ত উত্তরটি জিতেছে!
স্ট্যান্ডার্ড নিয়ম অবশ্যই প্রয়োগ করা হয়।
টেস্ট-মামলা
[[[P],[Q,R]],[[Q,R],[P]],[[Q],[P,R]]] -> true
[[[],[P]],[[S],[]],[[R],[P]],[[U],[Q]],[[X],[R]],[[Q],[S]],[[],[P,U]],[[W],[Q,U]]] -> true
[[[],[P,Q]],[[Q,P],[]],[[P],[Q]],[[Q],[P]]] -> false
[[[P],[]],[[],[P,S]],[[P,T],[]],[[Q],[R]],[[],[R,S]],[[],[P,Q,R]],[[],[P]]] -> false
optional behavior (not mandatory, may be left undefined):
[] -> true (empty formula)
[[]] -> false (empty clause)
[[[],[]]] -> false (empty clause)
{{P,Q},{P,!Q},{!P,Q},{!P,!Q}}
(এই ক্রমে নয়) যা সহজেই প্রদর্শিত হতে পারে এটি একটি দ্বন্দ্ব। ৪) এর জন্য: এটি তুচ্ছভাবে একটি বৈপরীত্য কারণ এটি হ'ল P AND ... AND (NOT P)
স্পষ্টতই কখনও পি এর কোনও মানের জন্য সত্য হতে পারে না
(A OR B OR (NOT C)) AND (C OR A OR (NOT B)) AND (B OR (NOT A))
?