দুটি বাইনারি ভেরিয়েবল, এ এবং বি এর জন্য 16 টি পৃথক বুলিয়ান ফাংশন রয়েছে :
A B | F0 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | F13 | F14 | F15
-----------------------------------------------------------------------------------------
0 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
0 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1
1 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1
1 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1
অপারেটরের চেয়ে কম <
, যা সাধারণত বোলিয়ান মানগুলিতে প্রয়োগ করার সময় না, এবং, বা ওআর মতো লজিক অপারেটর হিসাবে ভাবা হয় না:
A B | A < B
-----------
0 0 | 0
0 1 | 1
1 0 | 0
1 1 | 0
মজার বিষয় হল, আমরা 15 টির মধ্যে যে কোনও একটিরই সিমুলেশন এক্সপ্রেশন ব্যবহার করে অনুকরণ করতে পারি ()<AB10
। এই এক্সপ্রেশনগুলি যেমন পাঠ্য ও মূল্যায়ন করা হয় ঠিক তেমন অনেকগুলি স্ট্যান্ডার্ড প্রোগ্রামিং ভাষায় যেমন যেমন বন্ধনীগুলি অবশ্যই মেলাতে পারে এবং এর <
উভয় পাশে যুক্তি থাকতে হবে।
বিশেষত, এই অভিব্যক্তিগুলি অবশ্যই নিম্নলিখিত ব্যাকরণের সাথে মেনে চলতে হবে ( ব্যাকাস-নুর আকারে দেওয়া ):
element ::= A | B | 1 | 0
expression ::= element<element | (expression)<element | element<(expression) | (expression)<(expression)
এর অর্থ হ'ল অকেজো পের্থেসিস এবং ফর্মটির অভিব্যক্তি A<B<1
অনুমোদিত নয়।
সুতরাং অভিব্যক্তি A<B
F4 ফাংশনটির সাথে মেলে এবং A<B<1
অবশ্যই (A<B)<1
বা এটিকে পরিবর্তন করতে হবে A<(B<1)
।
প্রমাণ করা যে 15 অন্যান্য ফাংশন সব এক্সপ্রেশন পরিণত করা যাবে, এটা এক্সপ্রেশন যে একটি সেট গঠন করতে যথেষ্ট বৈশিষ্ট্যগুলি সম্ভবত সম্পূর্ণরূপে নির্মিত , কারণ তারপর, সংজ্ঞা দ্বারা, তারা কোনো ফাংশন জন্য এক্সপ্রেশন মধ্যে গঠিত হতে পারে।
এক্সপ্রেশন এক এমনভাবে সেট করা আছে x<1
(যেখানে x
হয় A
বা B
যা), ¬x
এবং (((B<A)<1)<A)<1
যা, A → B
। নেতিবাচক ( ¬
) এবং জড়িত ( →
) কার্যকরীভাবে সম্পূর্ণ হিসাবে পরিচিত ।
চ্যালেঞ্জ
অক্ষরগুলি ব্যবহার করে ()<AB10
, উপরে বর্ণিত আকারে 16 টি এক্সপ্রেশন লিখুন যা 16 টি স্বতন্ত্র বুলিয়ান ফাংশনের প্রত্যেকটির সমান।
লক্ষ্যটি হ'ল প্রতিটি প্রকাশকে যতটা সম্ভব সংক্ষিপ্ত করে তোলা। আপনার স্কোরটি আপনার প্রতিটি 16 টি এক্সপ্রেশনের অক্ষরের সংখ্যার যোগফল। সর্বনিম্ন স্কোর জয়। টাইব্রেকার প্রথম উত্তরটিতে যায় (তবে তারা তাদের উত্তর পরে অন্য কারও কাছ থেকে নেওয়া সংক্ষিপ্ত মত প্রকাশের সাথে সম্পাদনা না করে)।
এই প্রতিযোগিতার জন্য আপনাকে প্রযুক্তিগতভাবে কোনও আসল কোড লেখার দরকার নেই তবে আপনি যদি ভাব প্রকাশ করতে সহায়তা করার জন্য কোনও প্রোগ্রাম লিখে থাকেন তবে সেগুলি পোস্ট করার জন্য আপনাকে উত্সাহ দেওয়া হবে।
আপনার অভিব্যক্তিটি প্রত্যাশিতভাবে কাজ করে কিনা তা পরীক্ষা করতে আপনি এই স্ট্যাক স্নিপেট ব্যবহার করতে পারেন: