01 · الأعداد الطبيعية: الصفر والخليفة والعودية
الأعداد الطبيعية: الصفر والخليفة والعودية¶
مثّل كل عدد طبيعي بصفر أو خليفة واقرأ المساواة والجمع من هاتين الحالتين.
تعرف أن المعاملات تستدعي أساليب خاصة وأن المزيّن يسجل عند الرجوع.
- شرح التعريف الرياضي لـ «الأعداد الطبيعية: الصفر والخليفة والعودية» بكلماتك
- تحديد تمثيله في بيانات Python
- توقع تنفيذ صغير من الشفرة الفعلية
الصفر والخليفة من منطلقات بيانو. أما `n + 0 = n` و`n + S(m) = S(n + m)` فهما تعريفان عوديان للجمع.
يمثل `pre=None` الصفر و`pre=n` يمثل `S(n)`. يُخزن 2 كسلسلة `S(S(0))` لا كحقل int.
`0` / `S(n)` → `NaturalNumber.pre`; recursive addition → `__add__`
التعريف الرياضي
التعريف الرياضي¶
الصفر والخليفة من منطلقات بيانو. أما n + 0 = n وn + S(m) = S(n + m) فهما تعريفان عوديان للجمع.
تمثيل البيانات
تمثيل البيانات¶
يمثل pre=None الصفر وpre=n يمثل S(n). يُخزن 2 كسلسلة S(S(0)) لا كحقل int.
التنفيذ في Python
التنفيذ في Python¶
يميز __eq__ الصفر من الخليفة ويقارن السوابق، ويطابق فرعا __add__ معادلتي الجمع مباشرة.
المطابقة الدقيقة المستخدمة في الدورة:
مسار التنفيذ
مسار التنفيذ¶
في 2 + 2 يتناقص الطرف الأيمن حتى الصفر، ثم تظهر الحالة الأساسية قبل الاستدعاءات الخارجية عند الرجوع.
اكتب سطر الحالة الأساسية وآخر سطر عودي والقيمة النهائية.
اكتب توقعك أولًا ثم شغّل.
التحقق بالاختبارات
التحقق بالاختبارات¶
تفحص الاختبارات تميّز الصفر وحقنية الخليفة ومعادلتي الجمع، لكنها لا تغني عن الاستقراء.
النطاق والحدود
النطاق والحدود¶
تُظهر السلسلة الأحادية البنية لكن كلفتها تزداد مع القيمة؛ استخدم مدخلات صغيرة.