এটি কোড-গল্ফ ।
এই চ্যালেঞ্জের মধ্যে আমরা এমন প্রোগ্রাম / ফাংশন লিখব যা " নাইটস এবং কানভেস " ধাঁধা সমাধান করে।
পটভূমি
আপনি নিজেকে একটি দ্বীপে খুঁজে পেয়েছেন ... ইত্যাদি ... দ্বীপের প্রতিটি ব্যক্তি আপনার জন্য নাইট বা ছুরি ।
নাইটরা কেবল সত্য বিবৃতি দিতে পারে।
কাভেনস কেবলমাত্র মিথ্যা বিবৃতি দিতে পারে।
আমি কঠোরভাবে "বিবৃতি" সংজ্ঞায়িত করতে চাই না, তবে আমরা বলব একটি বিবৃতি এমন কিছু যা "সত্য" বা "মিথ্যা"। নোট করুন যে এটি বিদ্বেষমূলক বাক্যগুলি বাদ দেয়।
এই চ্যালেঞ্জের উদ্দেশ্যে, আপনি দ্বীপপুঞ্জের বিভিন্ন দল জুড়ে আসবেন; তারা আপনাকে বিবৃতি দেবে।
আপনার কাজটি কে একজন নাইট এবং কে একজন নৈব তা নির্ধারণ করা।
ইনপুট:
আপনাকে নিম্নলিখিত তথ্য (কোনও যুক্তিসঙ্গত বিন্যাসে) দেওয়া হবে:
উপস্থিত লোকদের একটি তালিকা। তাদের বড় হাতের অক্ষরের সাথে নাম দেওয়া হবে "এজেড"। এটি দ্বারা আরোপিত মানুষের সংখ্যার সীমা অতিক্রম করা হবে না।
প্রতিটি ব্যক্তি যে বিবৃতি দেয়। এই সম্পর্কে গুরুত্বপূর্ণ বিশদ জন্য নীচে দেখুন।
আউটপুট
তারপরে আপনি প্রতিটি ব্যক্তি কী তা আউটপুট (কোনও যুক্তিসঙ্গত ফর্ম্যাটে) পাবেন। উদাহরণস্বরূপ, যদি খেলোয়াড় থাকে A B C Dএবং Aএকটি নাইট হয় তবে বাকীগুলি ছুরি হয় তবে আপনি আউটপুট পেতে পারেন
A: 1
B: 0
C: 0
D: 0
গুরুত্বপূর্ণ বিশদ:
বড় হাতের বর্ণমালা অক্ষর AZ দ্বীপপুঞ্জীদের উল্লেখ করে।
অক্ষর
0(শূন্য) এবং1(একটি) যথাক্রমে একটি "ন্যাভ" এবং "নাইট" উল্লেখ করে। (আপনি যতক্ষণ না নির্দিষ্ট দুটি অন্য জেড অক্ষর অক্ষর করতে পারেন)উপস্থিত প্রতিটি দ্বীপপুঞ্জ যে কোনও প্রাকৃতিক সংখ্যক বিবৃতি দিতে পারে, বা কিছুই না বলতে পছন্দ করতে পারে।
সাধারণ লজিকাল অপারেটরগুলি বিবৃতিতে ব্যবহার করা যেতে পারে ( IS *, এবং, বা, নয় )। এর শীর্ষে, ডি মরগানের আইন ও শর্তাদি ব্যবহার করা যেতে পারে। নিম্নলিখিতগুলিতে কীভাবে সেগুলিকে আপনার প্রোগ্রামের ইনপুট হতে পারে তারপরে স্পোকড ধাঁধাতে কীভাবে উপস্থাপিত হতে পারে তার উদাহরণ নীচে রয়েছে।
(* আরও প্রযুক্তিগত নোটের উপরে। "আইএস" অপারেটরটি সত্যিই কন্টেন্ট হিসাবে ব্যবহৃত হয় (যা লজিকাল অপারেটর নয়) I আমি যখন "এ নাইট ইজ" বলি তখন আমার সত্যিকার অর্থে "এ" সেট এর সদস্য নাইটস "। প্রকৃত অপারেটরটি 'ϵ' হবে simp সরলতার জন্য আমরা এর পরিবর্তে '=' ব্যবহার করব))
আমি নিম্নলিখিতটি ব্যবহার করি (যতক্ষণ না এটি যুক্তিসঙ্গত এবং ধারাবাহিক হিসাবে আপনি যা কিছু ব্যবহার করতে পারেন):
^এবংvঅথবা=আইএস~না=>বোঝাX:ব্যক্তি এক্স দাবি করেছেন যে ...
ব্যক্তি জেড নিম্নলিখিত ধরণের বিবৃতিগুলির যে কোনও সমন্বয় করতে পারে:
ব্যক্তি জেড বলেছেন যে ...
ব্যক্তি এ একজন নাইট।
Z: A = 1পার্সন কিউ একজন নাভি ave
Z: Q = 0আমি একজন নাইট।
Z: Z = 1ব্যক্তি এ একজন নাইট বা ব্যক্তি বি একজন নাইট।
Z: ( A = 1 ) v ( B = 1)ব্যক্তি সি একজন নাইট এবং আমি একজন নৈব।
Z: ( C = 1 ) ^ ( Z = 0 )ব্যক্তি আর একজন নাইট নয়।
Z: ~( R = 1 )
এর উপরে, ইনপুট ডি মরগানের আইনগুলিও ব্যবহার করতে পারে
এটি সত্য নয় যে, এ এবং ব্যক্তি বি উভয়ই ক্যানভস
Z: ~( ( A = 0 ) ^ ( B = 0 ) )এটি মিথ্যা যে ব্যক্তি এ বা ব্যক্তি বি হয় নাইট
Z: ~( ( A = 1 ) v ( B = 1) )
অবশেষে, শর্তসাপেক্ষ এবং তাদের অবহেলা ব্যবহার করা যেতে পারে
আমি যদি একজন নাইট, তবে ব্যক্তি বি হ'ল নৈব
Z: ( Z = 1 ) => ( B = 0 )এটি সত্য নয় যে ব্যক্তি বি যদি একজন নাইট হয় তবে ব্যক্তি সি একজন নৈব।
Z: ~( ( B = 1 ) => ( C = 0 ) )
শর্তসাপেক্ষে নোট
পরীক্ষা করে দেখুন উইকিপিডিয়া আরও তথ্যের জন্য।
শর্তসাপেক্ষ বিবৃতি p => q রূপ নেয় , যেখানে p এবং q নিজেই বিবৃতি। p হল "পূর্ববর্তী" এবং q হল "ফলস্বরূপ"। এখানে কিছু দরকারী তথ্য
একটি শর্তের উপেক্ষা এইরকম মনে হচ্ছে: ~ (p => q) পি ^ ~ কিউ এর সমতুল্য
একটি ভুল ভিত্তি কিছু বোঝায়। অর্থাৎ যদি পি মিথ্যা, যেকোনো বিবৃতি পি => কুই সত্য, কি নির্বিশেষে কুই হয়। উদাহরণস্বরূপ: "যদি 2 + 2 = 5 তবে আমি স্পাইডারম্যান" একটি সত্য বিবৃতি।
কিছু সাধারণ পরীক্ষার কেস
এই কেসগুলি নিম্নোক্ত ফ্যাশনে দেওয়া হয়েছে (1) আমরা কীভাবে বক্তৃতাতে সমস্যা তৈরি করব (2) আমরা কম্পিউটারে এটি কীভাবে জাহির করতে পারি (3) কম্পিউটারটি দিতে পারে এমন সঠিক আউটপুট।
ব্যক্তি ক এবং ব্যক্তি বি রাস্তায় আপনার কাছে যান এবং নিম্নলিখিত বিবৃতি দিন:
উঃ বি হ'ল ছুরি বা আমি নাইট।
বি: ক একটি নাইট।
উত্তর:
বি একটি নাইট এবং এ একটি নাইট।
ইনপুট:
A B # Cast of Characters
A: ( B = 0 ) v ( A = 1)
B: A = 1
আউটপুট:
A = 1 B = 1
এ, বি এবং এফ ব্যক্তিরা আপনাকে রাস্তায় পৌঁছে নিম্নলিখিত বিবৃতি দেয়:
উত্তর: আমি যদি একজন নাইট, তবে বি হ'ল নৈব।
বি: যদি এটি সত্য হয়, তবে এফটিও একটি ন্যাভ।
উত্তর:
ক একটি নাইট, বি একটি নৈব, এফ একটি নাইট Kn
ইনপুট
A B F
A: ( A = 1 ) => ( B = 0 )
B: ( A = 1 ) => ( F = 0 )
আউটপুট:
A = 1 B = 0 F = 1
প্রশ্ন, এক্স এবং ডব্লু আপনাকে রাস্তায় পৌঁছে নীচের বিবৃতি দিন:
ডাব্লু: এটি সত্য নয় যে Q এবং X উভয়ই নাইট।
প্রশ্ন: সত্য।
এক্স: ডাব্লু যা বলেছে তা যদি সত্য হয়, তবে প্রশ্ন যা বলে তা মিথ্যা।
উত্তর:
ডাব্লু এবং কিউ নাইটস। এক্স একটি নৈব।
ইনপুট
Q X W
W: ~( ( Q = 1 ) ^ ( X = 1 ) )
Q: W = 1
X: ( W = 1 ) => ( Q = 0 )
আউটপুট
W = 1 Q = 1 X = 0
একটা হল অনুরূপ চ্যালেঞ্জ 3 বছর আগে পার্স এবং কন্ডিশন থাকে না বা ডি মরগান এর উপর যে দৃষ্টি নিবদ্ধ থেকে। এবং তাই, আমি যুক্তি দিয়ে বলব, এটিকে একটি ছদ্মবেশ এড়ানোর জন্য ফোকাস এবং বাস্তবায়নে যথেষ্ট আলাদা।
এই চ্যালেঞ্জটি ডুপ হিসাবে সংক্ষেপে বন্ধ ছিল। এটি আবার খোলা হয়েছে।
আমি দাবি করি যে এই চ্যালেঞ্জটি প্রথম দিকে, ফোকাসে আলাদা। অন্য চ্যালেঞ্জটি ইংলিশ পার্সিংয়ের উপর জোর দেয়, এটি হয় না। দ্বিতীয়টি এটি কেবল এবং ওআর ব্যবহার করে যেখানে এটি শর্তযুক্ত ব্যবহার করে এবং আরও অনেক ধাঁধা সমাধানের জন্য অনুমতি দেয়। দিনের শেষে, প্রশ্নটি হল যে এই চ্যালেঞ্জের উত্তরগুলি একেবারে তুচ্ছভাবে প্রতিস্থাপন করা যায় কিনা এবং আমি বিশ্বাস করি যে শর্তসাপেক্ষ এবং শর্তসাপেক্ষ অবহেলার অন্তর্ভুক্তি যথেষ্ট জটিলতা যুক্ত করে যে আরও দৃ changes় পরিবর্তনগুলি যথাযথভাবে করা দরকার ছিল এই চ্যালেঞ্জ ফিট।
OR, এটি হতে পারে A:1 B:1বা A:1 B:0বি এর B=1ক্ষেত্রে মিথ্যা হতে পারে, তবে এ সত্য হবে।
(B=1)^(C=1)সাধারণত কন্ডিশনালদের সাথে কীভাবে আচরণ করা হয়
(B=1)=>(C=0)?~((B=1)=>(C=0))বা(B=1)=>(C=1)অন্য কিছু?