গোল:
একটি সম্পূর্ণ প্রোগ্রাম বা ফাংশন লিখুন যা প্রস্তাবিত যুক্তিতে একটি সূত্র গ্রহণ করে (এখন থেকে লজিক্যাল এক্সপ্রেশন বা অভিব্যক্তি হিসাবে উল্লেখ করা হয় ) এবং সেই সূত্রটি সম্মিলিত স্বাভাবিক আকারে আউটপুট করে । দুই ধ্রুবক আছে, ⊤
এবং ⊥
সত্য এবং মিথ্যা, একটি ইউনারী অপারেটর প্রতিনিধিত্বমূলক ¬
অস্বীকৃতি প্রতিনিধিত্বমূলক, এবং বাইনারি অপারেটর ⇒
, ⇔
, ∧
, এবং ∨
সংশ্লেষ, সমানতা, একত্রে, এবং বিচ্ছিন্ন অবস্হা প্রতিনিধিত্বমূলক যথাক্রমে যা স্বাভাবিকের লজিক্যাল অপারেশন সমস্ত (আনুগত্য কর DeMorgan আইন , ডবল অস্বীকৃতি বর্জন ইত্যাদি))
কনজেক্টিভ স্বাভাবিক ফর্ম নীচে হিসাবে সংজ্ঞায়িত করা হয়:
- যে কোনও পারমাণবিক এক্সপ্রেশন (সহ
⊤
এবং⊥
) সম্মিলিত স্বাভাবিক আকারে। - পূর্বে নির্মিত কোনও অভিব্যক্তির অবহেলা সম্মিলিত স্বাভাবিক আকারে in
- পূর্বে যে কোনও দুটি নির্মিত এক্সপ্রেশনর বিভাজনটি কনজেক্টিভ স্বাভাবিক আকারে।
- পূর্বে যে কোনও দুটি নির্মিত ভাবের সংমিশ্রণটি কনজেক্টিভ স্বাভাবিক আকারে।
- অন্য কোনও অভিব্যক্তি সম্মিলিত স্বাভাবিক আকারে নয়।
যে কোনও যৌক্তিক অভিব্যক্তি কনজেক্টিভ স্বাভাবিক আকারে ( এই অ্যালগরিদমটি দেখুন ) যৌক্তিক সমতুল্য অভিব্যক্তিতে (অদ্বিতীয়ভাবে) রূপান্তরিত হতে পারে । আপনার সেই নির্দিষ্ট অ্যালগরিদম ব্যবহার করার দরকার নেই।
ইনপুট:
আপনি যে কোনও সুবিধাজনক বিন্যাসে ইনপুট নিতে পারেন; উদাহরণস্বরূপ, একটি প্রতীকী লজিক্যাল এক্সপ্রেশন (যদি আপনার ভাষা এটি সমর্থন করে), একটি স্ট্রিং, অন্য কোনও ডেটা স্ট্রাকচার। আমি এখানে যেমন করে সত্য, মিথ্যা এবং লজিকাল অপারেটরগুলির জন্য আপনাকে একই চিহ্ন ব্যবহার করার দরকার নেই, তবে আপনার পছন্দটি সামঞ্জস্যপূর্ণ হওয়া উচিত এবং আপনার উত্তরটি আপনার পছন্দগুলি পরিষ্কার করা না থাকলে আপনার ব্যাখ্যা করা উচিত। আপনি অন্য কোনও ইনপুট গ্রহণ করতে পারবেন না বা আপনার ইনপুট বিন্যাসে কোনও অতিরিক্ত তথ্য এনকোড করতে পারবেন না। পারমাণবিক প্রকাশের একটি নির্বিচার সংখ্যার প্রকাশ করার আপনার কিছু উপায় থাকতে হবে; যেমন পূর্ণসংখ্যা, অক্ষর, স্ট্রিং ইত্যাদি
আউটপুট:
কনজেক্টিভ সাধারণ ফর্মুলায় সূত্র আবার কোনও সুবিধাজনক বিন্যাসে। এটি আপনার ইনপুটের মতো একই ফর্ম্যাটে থাকা উচিত নয়, তবে কোনও ভিন্নতা থাকলে আপনার ব্যাখ্যা করা উচিত।
পরীক্ষার কেস:
P ∧ (P ⇒ R) -> P ∧ R
P ⇔ (¬ P) -> ⊥
(¬ P) ∨ (Q ⇔ (P ∧ R)) -> ((¬ P) ∨ ((¬ Q) ∨ R)) ∧ ((¬ P) ∨ (Q ∨ (¬ R)))
মন্তব্য:
- যদি ইনপুট এক্সপ্রেশনটি টাউটোলজি হয়
⊤
তবে এটি একটি বৈধ আউটপুট হবে। একইভাবে, যদি ইনপুট এক্সপ্রেশনটি একটি বৈপরীত্য হয়⊥
তবে এটি একটি বৈধ আউটপুট হবে। - আপনার ইনপুট এবং আউটপুট উভয় ফর্ম্যাটগুলিতে সমস্ত সম্ভাব্য যৌক্তিক অভিব্যক্তি প্রকাশে সক্ষম অপারেশনের একটি সু-সংজ্ঞায়িত ক্রম থাকা উচিত। আপনার কোনও প্রকারের প্রথম বন্ধনীর প্রয়োজন হতে পারে।
- যৌক্তিক ক্রিয়াকলাপের জন্য আপনি ইনফিক্স, উপসর্গ, বা পোস্টফিক্স স্বরলিপিগুলির কোনও সু-সংজ্ঞায়িত পছন্দ ব্যবহার করতে পারেন। যদি আপনার পছন্দটি মান থেকে পৃথক হয় (প্রত্যাখ্যান উপসর্গ, বাকিগুলি ইনফিক্স), দয়া করে আপনার উত্তরে এটি ব্যাখ্যা করুন।
- কনজেক্টিভ স্বাভাবিক ফর্ম সাধারণভাবে অনন্য নয় (এমনকি পুনরায় অর্ডারিং পর্যন্ত নয়)। আপনি শুধুমাত্র আউটপুট প্রয়োজন একটি বৈধ ফর্ম।
- তবে আপনি যদি পারমাণবিক ভাবের প্রতিনিধিত্ব করেন তবে এগুলি অবশ্যই যৌক্তিক ধ্রুবক, অপারেটর এবং গোষ্ঠীকরণের প্রতীকগুলি (যদি আপনার কাছে থাকে) থেকে পৃথক হওয়া উচিত।
- অন্তর্নিহিত স্বাভাবিক ফর্মের গণনা যা বিল্ট-ইনগুলিকে অনুমোদিত।
- স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
- এটি কোড-গল্ফ ; সংক্ষিপ্ত উত্তর (বাইটে) জেতা
P
এবং (P ∨ Q) ∧ (P ∨ (¬Q))
উভয়ই সম্মিলিত স্বাভাবিক আকারে।