विषय पर बढ़ें

01 · प्राकृतिक संख्याएँ: शून्य, उत्तराधिकारी और recursion

प्राकृतिक संख्याएँ: शून्य, उत्तराधिकारी और recursion

हर प्राकृतिक संख्या को शून्य या उत्तराधिकारी के रूप में रखकर समानता और जोड़ पढ़ें।

इस अध्याय से पहले

आप जानते हैं कि operator special method चलाता है और decorator लौटते समय log लिखता है।

अध्याय के बाद आप
  • “प्राकृतिक संख्याएँ: शून्य, उत्तराधिकारी और recursion” की गणितीय परिभाषा अपने शब्दों में समझाना
  • Python डेटा में उसका निरूपण बताना
  • वास्तविक कोड से छोटा execution अनुमानित करना
गणितीय परिभाषा

शून्य और उत्तराधिकारी पियानो के आरंभिक अभिगृहीत हैं। `n + 0 = n` और `n + S(m) = S(n + m)` जोड़ की recursive परिभाषाएँ हैं।

डेटा निरूपण

`pre=None` शून्य और `pre=n`, `S(n)` है। 2 किसी int field में नहीं, `S(S(0))` chain में रखा जाता है।

Python कार्यान्वयन

`0` / `S(n)` → `NaturalNumber.pre`; recursive addition → `__add__`

साथ पढ़ने के लिए कार्यान्वयन और test

peano/natural_number.py · tests/test_natural_number.py

गणितीय परिभाषा

गणितीय परिभाषा

शून्य और उत्तराधिकारी पियानो के आरंभिक अभिगृहीत हैं। n + 0 = n और n + S(m) = S(n + m) जोड़ की recursive परिभाषाएँ हैं।

डेटा निरूपण

डेटा निरूपण

pre=None शून्य और pre=n, S(n) है। 2 किसी int field में नहीं, S(S(0)) chain में रखा जाता है।

Python कार्यान्वयन

Python कार्यान्वयन

__eq__ शून्य और उत्तराधिकारी अलग कर predecessors की तुलना करता है; __add__ की branches दोनों जोड़ समीकरणों से सीधे मिलती हैं।

पाठ्यक्रम में उपयोग किया गया सटीक संबंध:

`0` / `S(n)` → `NaturalNumber.pre`; recursive addition → `__add__`

Execution trace

Execution trace

2 + 2 में दायाँ operand शून्य तक घटता है; लौटते समय आधार स्थिति पहले और बाहरी calls बाद में दिखते हैं।

चलाने से पहले अनुमान

आधार log, अंतिम recursive log और अंतिम मान लिखें।

प्रयोग · प्राकृतिक संख्याएँ: शून्य, उत्तराधिकारी और recursion अभी नहीं चला
⌘ / Ctrl + Enter
Output
पहले अनुमान लिखें, फिर चलाएँ।

Test से जाँच

Test से जाँच

test शून्य का भेद, उत्तराधिकारी की injectivity और जोड़ के समीकरण जाँचते हैं, induction का स्थान नहीं लेते।

दायरा और सीमाएँ

दायरा और सीमाएँ

unary chain संरचना दिखाती है पर मान के साथ महँगी होती है; छोटे input रखें।

“प्राकृतिक संख्याएँ: शून्य, उत्तराधिकारी और recursion” के कार्यान्वयन का सही वर्णन कौन-सा है?