Математик-непрограммист же свободен от этих ментальных страданий: его цель не написать работающую программу, а убедить кого-то в своих выводах.
Написать работающую программу - это убедить пользователя в том, что программа работает. Заметим, что машину ни в чём убеждать не надобно, она и так нам слепо повинуется.
> Не менее круто развиты и двойные стандарты, применяемые почти на автомате. Например, весьма нередко встречаются рассуждения вроде:
А можно хоть один пример такого?
> Но в области математики почему-то норм объявить рекурсивную функцию без такого условия и начать рассуждать о её «предельном результате», иногда прикрывая оный ещё какими-то эвфемизмами. Как так-то? У вас же вроде «точность»?
А можно хоть один пример такого?
> Кроме того, программистам интуитивно понятно, что «число» и «объект, в котором лежит число» - две большие разницы. В общем случае их нельзя отождествлять - даже если в объекте только-то одно это число и лежит.
Если они ведут себя одинаково во всех случаях - то их можно отождествлять.
> Я, например, почти только что беседовал с гражданином, который уверен, что процесс, в котором мы на базе списка строим некоторое число
Ну так надо смотреть на процесс. Не исключено, что гражданин прав.
> Бесконечные процессы там заканчиваются чуть ли не на каждой странице, причём каждый раз именно на том подшаге итерации, на котором нужно для рассуждений.
Согласитесь, это всё-таки не конкретный пример, о котором вас просили.
> Однако они не ведут себя одинаково во всех случаях.
А можно поинтересоваться, что это за объект такой - "число", о котором вы говорите, что его с чем-то там путают.
> Ну так надо смотреть на процесс. Не исключено, что гражданин прав.
Ну естественно - главное тут выгодно для себя определить понятие «прав». Ведь экспериментально это проверить вообще невозможно, поэтому из этих нефальсифицируемых гипотез надо выбирать по какому-то другому принципу.
Например, по степени отличимости что-то утверждающего от меня: чем он более я, тем вернее его вариант.
> Согласитесь, это всё-таки не конкретный пример, о котором вас просили.
Конкретный пример был до этого.
> А можно поинтересоваться, что это за объект такой - "число", о котором вы говорите, что его с чем-то там путают.
Это - некий обладающий идентификацией объект некоторого типа, для которого определён набор операций, которые мы условно называем «численными». Иного определения у «чисел» нет.
Разница в уровнях свободы и, как следствие, в точности заключается в том, что машина не умеет додумывать - ни правильно, ни неправильно. Вместо этого она выполняет то, что написали в коде, поэтому написано оно должно быть с абсолютной точностью и однозначностью.
У наших пацанов был пример, когда микроконтроллер неверно выполнял какую-то математическую операцию - что-то было с битами. Аппаратная ошибка. Во всем микросхемах данной серии.
Именно это закрепляет привычку к точности и однозначности, а вовсе не то, что какой-то другой неточный и неоднозначный человек сможет вам возразить.
Осталось осознать, что само-по-себе "точное исполнение инструкций" - не имеет вообще никакого смысла, ибо смысл ему приписывает - всё тот же человек. Всегда.
Результат работы программы является комбинацией исходных данных, кода самой програмы и кода, описывающего исполнительное устройство(микроконтроллер, например), и микроконтроллер всегда работает именно так, как ему сказали проектировщики на языке описания аппаратуры(если только не сломается). Сказали работать с ошибкой - будет работать с ошибкой, всё однозначно.
микроконтроллер всегда работает именно так, как ему сказали проектировщики на языке описания аппаратуры(если только не сломается).
В магико-мистическом мире, где компьютер - Бог, Всемогущий и Всеблагой - да, и наверняка. В реальности - есть такие забавные вещи как errata, разрабы процессора могут облажаться чисто на электрическом уровне - и проводники, например - начнут тупо "исчезать", вызывая непонятные аппаратные сбои. У вас может слегка ослабнуть прижим вентилятора - или паутина слегканамотаться на крыльчатку - и проц начнёт слегка и непредсказуемо сбоить. Ну иле - есть такая совершенно замечательная программа, как Майкрософт Уиндоуз - у неё после загрузки может подвиснуть проводник - и вместо десктопа можно будет длительное время любоваццо на крутящийся указатель мыши. А может просто, быстро и весело загрузится. На одном и том же компьютере.
> У наших пацанов был пример, когда микроконтроллер неверно выполнял какую-то математическую операцию - что-то было с битами.
И даже тут он ничего не додумывал, а выполнял ровно вот эту операцию. Невзирая на то, что у «пацанов» было описание какого-то другого контроллера, а не вот этого.
> Осталось осознать, что само-по-себе "точное исполнение инструкций" - не имеет вообще никакого смысла, ибо смысл ему приписывает - всё тот же человек.
К счастью, человек же проверяет, насколько исполненное совпадает с его пожеланиями, и на основании этого делает вывод, насколько ему подходит это устройство и эта программа.
Если, например, программа на некотором устройстве на предыдущем миллионе расчётов и символьных вычислений позволила сделать миллиард сбывшихся прогнозов и ноль несбывшихся, то это обосновывает «верность» программы и девайса гораздо лучше, чем любые философские рассуждения о «необходимом методе», который в этом устройстве и девайсе не использовался, равно как и в каких-либо других, и ни одного сбывшегося прогноза пока что не
В математике используется свой "язык" и сравнение с языками программирования здесь не работает, т.к. математические выражения несут другой смысл, нежели алгоритмические программы. Никакой проблемы с точность там нет. В математическом выражении/рассжудении либо есть ошибка и тогда оно не верно. Либо нет ошибки и тогда оно верно - т.е. абсолютно точно. Математики убеждают друг друга не в точности своих математических выражений, а достаточности их обоснований.
> Каждый раз, читая подобное, я офигиваю: ладно ещё «финальный результат» - но почему именно f-то?
Я всегда читал такие тексты, как "Мы будем долго крутить рекурсивную функцию, а когда пройдёт большое количество времен, дождёмся шага f и остановим процесс". Математики не это имею в виду?
> Есть ли в мире тому хоть одно обоснование, кроме «нам так хотелось»?
Я думал, что это единственное обоснование и есть. И что рассматривается, что будет, если остановить процесс на шаге f после того, как он долго работал.
> Причём в другом месте в тех же самых рассуждениях в качестве «финального результата» с той же степенью уверенности будет постулироваться «именно g».
Наверное потому, что в том месте рассматривается, что будет, если остановить процесс на шаге g. Я неправильно всё это понимаю?
> программисты вроде как понимают, что у рекурсивно определённой функции должно быть как минимум одно условие выхода без рекурсивного вызова
Я так думал, что условие выхода - остановка процесса вручную или по нелепой случайности.
> Я всегда читал такие тексты, как "Мы будем долго крутить рекурсивную функцию, а когда пройдёт большое количество времен, дождёмся шага f и остановим процесс". Математики не это имею в виду
( ... )
> Однако вместо этого обычно говорится: «да не, не может быть - сто пудов, только на шаге f: ведь только он в бесконечности последний».
Но это же безумие. Я бы даже не поверил тебе, что кто-то так говорит, если бы сам не послушал, как какие-то математики совершенно серьёзно утверждали, что 1 + 2 + 3 + ... + n == - 1/12 . А сейчас вот верю.
> В функциях, от которых предполагается получить ответ, всегда есть выход по условию без рекурсивного вызова. Минимум один.
Я думал, что подразумевается, что условие остановки - мы достигли какой-то достаточно далёкой итерации и находимся на шаге f. Похоже неправильно думал.
> Я думал, что подразумевается, что условие остановки - мы достигли какой-то достаточно далёкой итерации и находимся на шаге f. Похоже неправильно думал.
Просто счётчик, разумеется, тоже может быть условием выхода.
Comments 68
Написать работающую программу - это убедить пользователя в том, что программа работает. Заметим, что машину ни в чём убеждать не надобно, она и так нам слепо повинуется.
Reply
Примерно в 100% случаев пользователей убеждают в этом вовсе не демонстрацией им текста программы.
Reply
это верно, но никто и не ограничивал средств убеждения
Reply
Reply
А можно хоть один пример такого?
> Но в области математики почему-то норм объявить рекурсивную функцию без такого условия и начать рассуждать о её «предельном результате», иногда прикрывая оный ещё какими-то эвфемизмами. Как так-то? У вас же вроде «точность»?
А можно хоть один пример такого?
> Кроме того, программистам интуитивно понятно, что «число» и «объект, в котором лежит число» - две большие разницы. В общем случае их нельзя отождествлять - даже если в объекте только-то одно это число и лежит.
Если они ведут себя одинаково во всех случаях - то их можно отождествлять.
Reply
Reply
Ну так надо смотреть на процесс.
Не исключено, что гражданин прав.
> Бесконечные процессы там заканчиваются чуть ли не на каждой странице, причём каждый раз именно на том подшаге итерации, на котором нужно для рассуждений.
Согласитесь, это всё-таки не конкретный пример, о котором вас просили.
> Однако они не ведут себя одинаково во всех случаях.
А можно поинтересоваться, что это за объект такой - "число", о котором вы говорите, что его с чем-то там путают.
Reply
Ну естественно - главное тут выгодно для себя определить понятие «прав». Ведь экспериментально это проверить вообще невозможно, поэтому из этих нефальсифицируемых гипотез надо выбирать по какому-то другому принципу.
Например, по степени отличимости что-то утверждающего от меня: чем он более я, тем вернее его вариант.
> Согласитесь, это всё-таки не конкретный пример, о котором вас просили.
Конкретный пример был до этого.
> А можно поинтересоваться, что это за объект такой - "число", о котором вы говорите, что его с чем-то там путают.
Это - некий обладающий идентификацией объект некоторого типа, для которого определён набор операций, которые мы условно называем «численными». Иного определения у «чисел» нет.
Reply
У наших пацанов был пример, когда микроконтроллер неверно выполнял какую-то математическую операцию - что-то было с битами.
Аппаратная ошибка.
Во всем микросхемах данной серии.
Именно это закрепляет привычку к точности и однозначности, а вовсе не то, что какой-то другой неточный и неоднозначный человек сможет вам возразить.
Осталось осознать, что само-по-себе "точное исполнение инструкций" - не имеет вообще никакого смысла, ибо смысл ему приписывает - всё тот же человек.
Всегда.
Reply
Reply
В магико-мистическом мире, где компьютер - Бог, Всемогущий и Всеблагой - да, и наверняка.
В реальности - есть такие забавные вещи как errata, разрабы процессора могут облажаться чисто на электрическом уровне - и проводники, например - начнут тупо "исчезать", вызывая непонятные аппаратные сбои.
У вас может слегка ослабнуть прижим вентилятора - или паутина слегканамотаться на крыльчатку - и проц начнёт слегка и непредсказуемо сбоить.
Ну иле - есть такая совершенно замечательная программа, как Майкрософт Уиндоуз - у неё после загрузки может подвиснуть проводник - и вместо десктопа можно будет длительное время любоваццо на крутящийся указатель мыши.
А может просто, быстро и весело загрузится.
На одном и том же компьютере.
Reply
И даже тут он ничего не додумывал, а выполнял ровно вот эту операцию. Невзирая на то, что у «пацанов» было описание какого-то другого контроллера, а не вот этого.
> Осталось осознать, что само-по-себе "точное исполнение инструкций" - не имеет вообще никакого смысла, ибо смысл ему приписывает - всё тот же человек.
К счастью, человек же проверяет, насколько исполненное совпадает с его пожеланиями, и на основании этого делает вывод, насколько ему подходит это устройство и эта программа.
Если, например, программа на некотором устройстве на предыдущем миллионе расчётов и символьных вычислений позволила сделать миллиард сбывшихся прогнозов и ноль несбывшихся, то это обосновывает «верность» программы и девайса гораздо лучше, чем любые философские рассуждения о «необходимом методе», который в этом устройстве и девайсе не использовался, равно как и в каких-либо других, и ни одного сбывшегося прогноза пока что не
Reply
Никакой проблемы с точность там нет. В математическом выражении/рассжудении либо есть ошибка и тогда оно не верно. Либо нет ошибки и тогда оно верно - т.е. абсолютно точно. Математики убеждают друг друга не в точности своих математических выражений, а достаточности их обоснований.
Reply
Reply
Я всегда читал такие тексты, как "Мы будем долго крутить рекурсивную функцию, а когда пройдёт большое количество времен, дождёмся шага f и остановим процесс". Математики не это имею в виду?
> Есть ли в мире тому хоть одно обоснование, кроме «нам так хотелось»?
Я думал, что это единственное обоснование и есть. И что рассматривается, что будет, если остановить процесс на шаге f после того, как он долго работал.
> Причём в другом месте в тех же самых рассуждениях в качестве «финального результата» с той же степенью уверенности будет постулироваться «именно g».
Наверное потому, что в том месте рассматривается, что будет, если остановить процесс на шаге g. Я неправильно всё это понимаю?
> программисты вроде как понимают, что у рекурсивно определённой функции должно быть как минимум одно условие выхода без рекурсивного вызова
Я так думал, что условие выхода - остановка процесса вручную или по нелепой случайности.
Reply
Reply
Но это же безумие. Я бы даже не поверил тебе, что кто-то так говорит, если бы сам не послушал, как какие-то математики совершенно серьёзно утверждали, что 1 + 2 + 3 + ... + n == - 1/12 . А сейчас вот верю.
> В функциях, от которых предполагается получить ответ, всегда есть выход по условию без рекурсивного вызова. Минимум один.
Я думал, что подразумевается, что условие остановки - мы достигли какой-то достаточно далёкой итерации и находимся на шаге f. Похоже неправильно думал.
Reply
Просто счётчик, разумеется, тоже может быть условием выхода.
Reply
Leave a comment