مقارنة التعبيرات المنطقية
مُقدَّم| English | المعنى |
|---|---|
| equivalent/ɪˈkwɪvələnt/ | مكافئ |
| De Morgan's Laws/də ˈmɔːɡənz lɔːz/ | قوانين دي مورغان |
مثال مضاد واحد يفند إعادة كتابة منطقية
- إعادة الكتابة المقترحة تغير !(a && b) إلى !a && !b. ضع a = true و b = false.
- العبارة الأصلية صحيحة، بينما إعادة الصياغة المقترحة خاطئة. يتطلب قانون دي مورغان !a || !b، وهو ما يتوافق مع العبارة الأصلية.
عندما تعني شرطان نفس الشيء
- تعبران منطقيان متكافئان إذا أعطيا نفس النتيجة لكل مدخل. لعدد صحيح
x،x >= 5و!(x < 5)متكافئان — كلاهما صحيح تمامًا عندما يكونxعلى الأقل5. - بالنسبة للمتغيرات المنطقية الخالية من الآثار الجانبية، تكون التعبيرات المتكافئة لها نفس النتيجة. تحقق أيضاً من ترتيب التنفيذ إذا كانت التعبيرات تستدعي طرقاً أو تغير الحالة. جدول الحقيقة يثبت التكافؤ: نفس المخرجات في كل صف.
قوانين دي مورغان
- قوانين دي مورغان تعيد كتابة NOT فوق AND/OR:
!(a && b)يساوي!a || !b. !(a || b)يساوي!a && !b. النمط: ادفع!للداخل، وعكس&&↔||.
تبسيط الشروط
- استخدم قوانين دي مورغان وقواعد المنطق لكتابة تكافؤ أقصر وواضح. بالنسبة لدرجة عدد صحيح،
!(score < 60)تصبحscore >= 60— نفس المعنى، أسهل في القراءة. - إزالة النفي المزدوج أو
!الخارجي غالباً ما يوضح القصد. تحقق من نطاق المدخلات الدقيق وسلوك التنفيذ؛ fewer characters لا يضمن fewer bugs.
وفقاً لقانون دي مورغان، !(a && b) تكافئ...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
ادخل الـ ! وعكس && إلى ||.
وفقاً لقانون دي مورغان، !(a || b) تكافئ...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
ادخل الـ ! وعكس || إلى &&.
بالنسبة لدرجة صحيحة، أي ما هو المعادل لـ !(score < 60)؟
Difficulty 1/5 · 100 coins + a small bonus on first completion today
not-less-than-60 يعني at-least-60.
يعتبر تعبيران منطقيان متكافئين إذا أعطيا نفس النتيجة لكل مدخل.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
نفس المخرجات في كل صف من جدول الحقيقة = متكافئ.
بتطبيق قانون دي مورغان، !(a && b) تصبح !a && !b.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
تصبح !a || !b — يجب عكس العامل.
الاختبار باستخدام جدول الحقيقة
- للتحقق مما إذا كان تعبران متكافئين، قم بتفصيل كليهما لجميع المدخلات. إذا تطابقت كل الصفوف، فهما متكافئان؛ عدم تطابق واحد يعني أنهما غير متكافئين.
- بالنسبة لمتغيرين منطقيين نقيين، هناك أربعة صفوف إدخال، تحدد دالة الحقيقة بالكامل. هذا لا يحصّي آثار استدعاءات الطرق العشوائية ولا يثبت صحة كل إعادة صياغة لمقارنة أرقام عائمة.
عند تطبيق قانون دي مورغان، يجب عليك عكس العامل أيضًا، وليس فقط توزيع !. !(a && b) هو !a || !b (AND يصبح OR) — كتابة !a && !b خاطئة. الذاكرة: ادفع NOT للداخل واستبدل && ↔ ||. عند الشك، جدول الحقيقة يحسم الأمر في أربعة صفوف.
لـ a=true و b=false، ما هي قيم !(a && b)، !a && !b، و !a || !b، بنفس الترتيب؟
Difficulty 1/5 · 100 coins + a small bonus on first completion today
The mismatching middle expression is a counterexample to the proposed equivalence.
بالنسبة لـ double score يساوي NaN، !(score < 60) and score >= 60 return تعطي نفس النتيجة المنطقية.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
المقارنات score < 60 and score >= 60 كلاهما خاطئة بالنسبة لـ NaN، لذا فإن نفي التعبير الأول صحيح والثاني خاطئ.
إذا كانت f() تُرجع false، كم مرة ستعمل g() أثناء تقييم !(f() && g())؟
Difficulty 2/5 · 140 coins + a small bonus on first completion today
العامل الأول الخاطئ يُشطب && بشكل قصير، لذا لا يتم استدعاء g. المعادل !f() || !g() يتخطى g أيضًا.
إعادة صياغة !(a && b):
- خاطئ:
!a && !b. - صحيح (دي مورغان):
!a || !b— AND يتحول إلى OR. - تحقق: إذا
a = true, b = false، فإن!(true && false) = !false = true، و!a || !b = false || true = true. ✓
انقل الاستدلال إلى حالة جديدة
- بالنسبة للمتغيرات المنطقية النقية، تثبت جميع أزواج الإدخال الأربعة التكافؤ. تحافظ صيغ دي مورغان على تنفيذ Short-circuit من اليسار إلى اليمين:
!(f() && g())و!f() || !g()يتخطيان g كلاً منهما عندما يكون f خاطئاً. - تبديل المعاملات هو تحويل مختلف. على الرغم من أن
a && bوb && aلديهما نفس جدول الحقيقة للمتغيرات النقية، إلا أنf() && g()وg() && f()قد يستدعيان طرقاً مختلفة. بالنسبة لـ double score=NaN، فإن!(score < 60)يكون صحيحاً لكنscore >= 60يكون خاطئاً؛ قاعدة المقارنة العددية لا تمتد إلى NaN.
تعبيران بوليانيان متكافئان إذا اتفقا على كل مدخل (يمكن إثبات ذلك باستخدام جدول حقيقة). قوانين دي مورغان: !(a && b) = !a || !b و !(a || b) = !a && !b — ادفع ! للداخل وعكس && ↔ ||. استخدمها لـتبسيط الشروط إلى صيغ مكافئة أكثر وضوحًا.