liqrizz
@liqrizz
лол

Как найти алгоритм вычисления функции зная только аргумент и результат?

Допустим есть функция который если принимает 1, то получаем 25.6, если 2 то 27.9, если 3 то 30.2;
Можно ли как нибудь найти формулу знаю только аргумент и результат?

Пример был сделан на основе f(x) => x * 2.3 + 23.3
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
dollar
@dollar
На чёткий вопрос - чёткий ответ.
Никак нельзя (в общем случае).

Можно только в алгоритм вбить список различных функций f(x) с некоторыми константами a,b,c,d и т.д. И далее решать систему уравнений для каждой функции, проверяя таким образом, подходит она или нет.
spoiler
В вашем примере одна из функций должна быть: f(x) = a*x + b
Соответственно, система будет из двух уравнений:
25.6 = a*1 + b
27.9 = a*2 + b
Решение, естественно, тоже забито в алгоритм заранее известной формулой. Находим a и b. Далее проверяем для x=3, а также для надежности для x=4, x=5, x=6, x=7, x=8. Если сходится, то это оно. Иначе пробуем следующую функцию из списка.

Но даже здесь может быть ошибка, если на самом деле функция такая:
f(x) => |x| * 2.3 + 23.3
Или такая:
f(x) => x * 2.3 + 23.3 + (x +10)3 - |(x+10)3|
Ведь мы проверяли только x > 0, а про отрицательные забыли. То есть мало того, что найти функцию сложно, так ещё и найденная функция может быть неправильной.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
freeExec
@freeExec
Участник OpenStreetMap
Нейронки - это апроксиматоры. Они не ищут исходную функцию. Они на основе своей конфигурации стараются подобрать такие параметры, чтобы результаты наиболее точно повторяли заданные на обученном диапазоне.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Алгоритмов - полно, но это НЕ нейросети и ML.
Гуглите алгоритм восстановления функции и там - тучами.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы