3.10: Обговорення
- Page ID
- 65249
Група обговорювала значення комбінаторних доказів проти формальних доказів шляхом індукції. Сін сказав, що він насправді вважав за краще робити доказ шляхом індукції, як комбінаторний доказ, можна стверджувати, насправді не був доказом. Дейв пробормотав «Комбінаторні докази завжди можна зробити суворими». Вони деякий час ходили туди-сюди, а потім Аліса сказала: «Але професор ніколи не пояснював цю дивну послідовність.
\(1,2,3,4,1,2,3,4,5,1,2,3,4,5,2,3,4,5,6,2,3,4,5,6,1,2,3,4,5,2,3,4,5,6,…,\)
хіба він?»
Дейв був на рулоні. Він запитав: «Хто змінив на долар?» але ніхто не розумів, чому він зірве суперечку щодо доказів, коли всі вже заплатили за каву. Аліса була більш до того: «Ти знаєш Дейва, іноді я просто не розумію, чому ти говориш те, що робиш». Дейв посміхнувся (можливо, це була більше посмішка) «Йдеться про внесення змін. Терміни в цій послідовності - це найменша кількість монет, необхідних для внесення змін». Боб сказав: «Я цього не розумію». Дейв продовжив: «Термін\(a_n\) - це найменша кількість монет США, необхідних на загальну суму до\(n\) центів». Тепер всі стогнали, всі, крім Карлоса, який думав, що принаймні цього разу Дейв був дійсно розумним.
«Ну, - сказав Боб, - це піклується про дивну послідовність, але я все ще не бачу різниці між індукцією та рекурсією». Дейв не міг мовчати «Ніхто не робить». Сін подумав інакше і сказав: «У багатьох мовах програмування ви намагаєтеся уникати рекурсії, вважаючи за краще використовувати петлі замість цього. В іншому випадку ви намотуєте перевантаження стека. Як лише один приклад, ви можете обчислити найбільший спільний дільник\(d\)\(m\) і\(n\), а також знайти\(a\) і\(b\) так, що\(d=am+bn\) за допомогою циклу - з дуже невеликим обсягом пам'яті. Рекурсивний підхід, обговорюваний раніше, з властивим відстеженням назад в кінці, насправді не є необхідним». Йоланда була вражена великим досвідом програмування та знаннями Xing, але Аліса була менш такою.
Зорі втрачала терпіння і була особливо сварливою сьогодні: «Я не бачу ніякої цінності для жодного з цих речей. Хто заплатить мені, щоб знайти найбільші спільні дільники?» Дейв сказав: «Ніхто». Аліса сказала: «Але, можливо, є деякі принципи, які мають практичне застосування». Карлос приєднався, кажучи: «Я думаю, що основні принципи встановлення того, що комп'ютерна програма робить те, що ви маєте намір мати багато спільного з індукцією та рекурсією». Боб сказав: «Я не розумію. Коли я пишу програму, я просто звертаю увагу на деталі, і після декількох виправлень вони завжди працюють». Аліса була жорстокою «Можливо, це тому, що ти не робиш нічого складного». Карлос був більш ніжним: «Великі програмні проекти можуть мати сотні тисяч рядків коду, і шматочки кінцевого продукту можуть бути написані різними групами програмістів в різні моменти часу. Встановлення правильності може бути дуже складним завданням». Вуха Зорі піднялися, коли вона думала, що побачила щось в цій останній розмові, що може бути способом заробити зарплату.