Мастер редактирования :
[кстати, спасибо за принятый ответ.]
При рассмотрении моего ответа и других в этом посте я понял две вещи.
Первый - это тот факт, что при взгляде на вещи на более высоком уровне абстракции большинство (все?) Из приведенных [контр-] примеров являются формой функции * дискретизация *, Другими словами, они соответствуют повсеместному требованию в компьютерных системах отображения [возможно, бесконечно] множества объектов / значений в набор (возможно, также «бесконечный», хотя чаще всего конечный) дискретных объектов / значений. Хотя не все такие отображения подразумевают или требуют небиективного подхода, многие это делают, поэтому найдено несколько примеров.
Другое наблюдение состоит в том, что наиболее убедительные примеры, кажется, связаны со случайными (случайными) процессами или с базовыми примитивами, которые их поддерживают.
Обе эти вещи, на мой взгляд, довольно красноречиво отражают то, как сложность реального мира (читайте " случайность " на многих уровнях) используется в различных системах в человек (и животные) для создания упрощенных / стабильных / дискретных карт, представляющих элементы этой сложной реальности: еще один случай, когда математика и ее практически ориентированный друг, компьютерные науки, объединяются для описания или имитации фундаментальных реальностей (или ... это реальность? гул ... мы становимся слишком философскими ...)
Это может быть вопросом понимания именно рамки вопроса:
- подсчитывать биективные функции (они действительно являются частным случаем исключения)
Редактировать : Нет, биективные функции не рассматриваются.
- должен ли он быть "функцией" в смысле процедурного вычисления, в отличие от "отношения", как в базах данных
Редактировать : да, процедурная функция своего рода ... "принимает значение и возвращает другое значение" (ИМХО это различие очень незначительно, поскольку любая "карта" является функцией, независимо от внутренней работы, но давайте примем это ограничение «как числовые вычисления» в духе этого вопроса)
- определить "витал" ...
С учетом всех этих предостережений может применяться следующее:
- Элементарные математические функции, такие как ABS () или даже ROUND (), FLOOR () (абсолютное значение, направление десятичного значения / значения с плавающей запятой до ближайшего целого числа соответственно) и т. Д.
Например, в случае ABS (), используемой в контексте программы, которая рисует фигуры на экране, используя различные свойства, скажем, симметрии, сможет рассчитывать на получение двух и ровно двух значений для сопоставления с данным значение и иметь все значения в данном интегральном диапазоне (скажем, от 0 до 10), чтобы быть значением ABS (), чтобы рисунки не выглядели смешно; -)
- функция Soundex (и ее многочисленные производные)
- Операция по модулю с, даже в таких тривиальных случаях, когда отображается состояние процесса, каждый обработанный x элементов.
- Процессы классификации : важно, чтобы существовали важные факторы сокращения (тысячи экземпляров, сопоставленных с несколькими категориями), и очень важно [в некоторых случаях], чтобы все экземпляры давали один и только одна категория (например, в системах принятия решений в режиме реального времени).
- Различные "простые" математические функции, используемые в генераторах псевдослучайных чисел .
Крайне важно, чтобы они были сюръективными, чтобы а) все значения в пространстве имен были бы пригодными для повторного использования, в действительности, подразумеваются ожидания от конкретного, часто равномерного, распределения. (Обратите внимание, что это может быть повторением приведенного выше примера «по модулю», хотя он не должен использовать собственно арифметику по модулю, это может сделать другая математическая функция)
Ниже приведен плохой пример, когда Мартин пояснил, что [математические операции, такие как функции, которые] «принимают значение и возвращают другое значение» - это то, что определяет «функцию», следовательно, дисквалифицирует «карты», управляемые базой данных / таблицами, и подобные. А также, что биекции не учитывались.
- Отношения один-к-одному (или отношения один-ко-многим в этом отношении): может быть так важно поддерживать их, что нам требуются триггеры и т. Д., Чтобы не отставать от ссылочной целостности