Разработчики очень часто имеют дело с рекурсивными функциями. В моем случае чаще на курсах, на работе реже, но и там они тоже попадаются. Раньше, создавая очередную рекурсивную функцию, я не задумывался о доказательстве того, что она будет корректно работать для всех валидных для нее входящих данных, достаточно и тестов на пограничные и средние значения. Но недавно, на курсе Introduction to Computer Science and Programming Using Python, я познакомился с методом математической индукции, с помощью которого, в некоторых случаях, можно именно доказать, что функция будет корректно работать для всего множество входящих данных, если это - натуральные числа. Сам метод показался занимательным, но, в то же время, очень простым и сподвиг меня на написание данной статьи. Принцип математической индукции формулируется следующим образом:
утверждение P(n), где n - натуральное число, справедливо для любого n из множества N, если: Доказательство посредством математической индукции проводится в два этап