Мне больше нравится описывать функцию, как множество упорядоченных пар, задающих все определяемые функцией отображения аргумента на значение. И можно выделить подмножества однозначных и взаимно однозначных функций. Упорядоченная пара-это тоже множество особого вида, и вообще, кроме множеств ничего не надо. Обратимыми являются все функции, для обращения достаточно поменять местами элементы пар.
Однако самый хороший способ описывать функции - это описывать их как именованную последовательность операций. Тогда под это определение попадает и такое отображение, и сякое отображение, и вообще не отображение тоже. Чего бы ни значило слово «отображение», определяемое сейчас примерно так, как у Лема определялись «сепульки».
Отображение можно строго определить средствами математической логики, как множество, содержащее только упорядоченные пары. А в множество функций нельзя включать не отображения. Совсем забыл, у математиков принято называть функциями только однозначные отображения, из за чего большинство функций не обращаются на функции. А я программист, а не математик, если что:).
> А «упорядоченную пару» - как упорядоченное множество из двух элементов! Существуют способы определить упорядоченную пару через совокупность нескольких множеств, которые, конечно же, по своей природе не могут быть упорядоченными. Примеры можно элементарно нагуглить. Ну или ChatGPT можно спросить, он неплохо шарит в таких вопросах. > И вот тут-то и наступает решительный разрыв абстракции. Было бы очень интересно посмотреть на примеры функций, которые не являются отображениями.
> Было бы очень интересно посмотреть на примеры функций, которые не являются отображениями.
Для этого надо, чтобы хоть кто-то наконец определил понятие "отображение" не по кругу через само себя, а как-то содержательно.
Ну, чтобы не было возможности чисто по произволу говорить, что тут вот оно, а там не оно.
> Существуют способы определить упорядоченную пару через совокупность нескольких множеств, которые, конечно же, по своей природе не могут быть упорядоченными.
Как мы знаем из целой кучи языков программирования, они могут.
> Однако самый хороший способ описывать функции - это описывать их как именованную последовательность операций.
1. Рассуждать об "исполняющихся программах" кардинально сложнее чем разссуждать о "входе - выходе". 2. (на самом деле частный но крайне важный под-вариант 1) - мы не всегда можем доказать (и не факт, что это вообще возможно), что две одинаковые функции, даже хорошие (чистые; завершающиеся; завершающиеся с одним и тем же результатом) одинаковы.
> Рассуждать об "исполняющихся программах" кардинально сложнее чем разссуждать о "входе - выходе".
Наоборот. Этой иллюзии люди поддались, когда программирования ещё не было, поэтому никто толком не понимал, как такое однозначно записывать. Тем более, что в математике для этого и языка толком нет. Однако именно система записи действий в результате оказалась наиболее хорошо определённой группой языков, сумевшей описать, в том числе, аналог языка математики.
А вот отображения и т.п. так и остались примерно на том же уровне точности и полноты, на котором были полтора века назад.
Что значит твоё "рассуждать проще" - мне не совсем понятно.
Вот моё "рассуждать сложнее" значит следующее: сложность математических рассуждений/доказательств про "чистые функции"(считай что отображения) и "ко-монады"(считай что объекты) - примерно два порядка. Ну где-то как между программой 11 класса и профильным предметом на старшем курсе в ВУЗе.
Если так нельзя определять функции, то почему? Нет отображения? А с чего вы это взяли - я скажу, что есть. Чисто риторически будем мериться, кто правильнее сказал?
Это любая периодическая функция с периодом 1. ЛЮБАЯ подобная функция подходит.
Вот именно поэтому математики не всегда рассматривают функции как последовательности действий. Пример задачи: Водка рекурсивная. Состав: 20% спирт, 30% вода,50% водка рекурсивная. Если рассматривать это как процедуру (последовательность шагов, которые надо выполнить), то получится бесконечная рекурсия (в лучшем случае с отсечением после достижения заданного уровня погрешности). Если рассматривать это как уравнение - оно легко решается.
Функция это однозначное обратимое отображение множества в множество . ЕМНИП
Reply
Что-то недостаточно узко получается - надо бы ещё добавить «множества целых чисел не больше десяти».
Reply
и не однозначное и не обратимое
Reply
Reply
Reply
Reply
А «упорядоченную пару» - как упорядоченное множество из двух элементов!
> А в множество функций нельзя включать не отображения.
И вот тут-то и наступает решительный разрыв абстракции.
Reply
Существуют способы определить упорядоченную пару через совокупность нескольких множеств, которые, конечно же, по своей природе не могут быть упорядоченными. Примеры можно элементарно нагуглить. Ну или ChatGPT можно спросить, он неплохо шарит в таких вопросах.
> И вот тут-то и наступает решительный разрыв абстракции.
Было бы очень интересно посмотреть на примеры функций, которые не являются отображениями.
Reply
Для этого надо, чтобы хоть кто-то наконец определил понятие "отображение" не по кругу через само себя, а как-то содержательно.
Ну, чтобы не было возможности чисто по произволу говорить, что тут вот оно, а там не оно.
> Существуют способы определить упорядоченную пару через совокупность нескольких множеств, которые, конечно же, по своей природе не могут быть упорядоченными.
Как мы знаем из целой кучи языков программирования, они могут.
Reply
1. Рассуждать об "исполняющихся программах" кардинально сложнее чем разссуждать о "входе - выходе".
2. (на самом деле частный но крайне важный под-вариант 1) - мы не всегда можем доказать (и не факт, что это вообще возможно), что две одинаковые функции, даже хорошие (чистые; завершающиеся; завершающиеся с одним и тем же результатом) одинаковы.
Reply
Наоборот. Этой иллюзии люди поддались, когда программирования ещё не было, поэтому никто толком не понимал, как такое однозначно записывать. Тем более, что в математике для этого и языка толком нет. Однако именно система записи действий в результате оказалась наиболее хорошо определённой группой языков, сумевшей описать, в том числе, аналог языка математики.
А вот отображения и т.п. так и остались примерно на том же уровне точности и полноты, на котором были полтора века назад.
Reply
Вот моё "рассуждать сложнее" значит следующее:
сложность математических рассуждений/доказательств про "чистые функции"(считай что отображения) и "ко-монады"(считай что объекты) - примерно два порядка.
Ну где-то как между программой 11 класса и профильным предметом на старшем курсе в ВУЗе.
Reply
Reply
f(x) := f(x + 1)
Если так нельзя определять функции, то почему? Нет отображения? А с чего вы это взяли - я скажу, что есть. Чисто риторически будем мериться, кто правильнее сказал?
Это любая периодическая функция с периодом 1. ЛЮБАЯ подобная функция подходит.
Reply
Reply
Пример задачи:
Водка рекурсивная. Состав: 20% спирт, 30% вода,50% водка рекурсивная.
Если рассматривать это как процедуру (последовательность шагов, которые надо выполнить), то получится бесконечная рекурсия (в лучшем случае с отсечением после достижения заданного уровня погрешности). Если рассматривать это как уравнение - оно легко решается.
Reply
Leave a comment