【问题标题】:Finding the mathematical algorithm to which matches an input and output together查找与输入和输出匹配的数学算法
【发布时间】:2026-01-17 01:55:02
【问题描述】:

作为最终结果,我想要一个计算机程序,它可以接受输入和输出列表,然后将进入这些输入/输出的相同算法应用于另一个数字,即:

如果给出这个输入/输出列表

2:4
4:8
100:200

它会意识到算法将是 (input * 2) 或 (output / 2),具体取决于我们想要的。

因此,如果给定数字 16,并要求产生输出,程序将响应 32。如果给定数字 10,并要求产生输入,它将响应 5。

将它“硬编码”到程序中显然相当简单,尽管我想学习如何让程序自学算法是什么。我知道这会很快变得相当复杂。

【问题讨论】:

  • 你认为神经网络是一种数学算法吗?
  • @DonReba 我有一种感觉,这将变得比我已经预测的疯狂的复杂性要复杂得多。
  • 这实际上听起来像经典插值。见en.wikipedia.org/wiki/Interpolation
  • 这似乎是一个非常开放的问题。你有没有试过modeling你的问题。如果您有流程的描述或模型,那么请求算法会更容易。如果您只有一个输入和输出列表并且不了解底层模型/物理,那么@DonReba 是正确的neural network 可能是要走的路。
  • 这是一个积极研究的巨大课题。您可以在不深入研究的情况下开始解决此问题的唯一方法是对您的算法做出某种假设。您是否正在寻找某种程度的最佳拟合多项式?

标签: java algorithm math machine-learning


【解决方案1】:

对于任何类型的输入/输出信号依赖,你都不能可靠地做到这一点,你应该只支持一些,否则你需要某种 AI 或 非常复杂 神经网络 + 很多 具有疯狂复杂性和未知可靠性的功能生成器 ...

我会将其简化为以下依赖项:

  1. 多项式到一定程度

    • (可以使用任何插值/近似)
    • y=a0+a1*x+a2*x*x+a3*x*x*x
  2. 指数

    • y=a0+a1^x
  3. 其他

    • 如果您想支持正弦波等功能,那么您将需要很多输入,而不仅仅是几个输入来决定依赖的类型。

无论如何我认为只有 3 个输入点是不够的

  • 例如多项式 a0+a1*x+a2*x*x+a3*x*x*x=y 至少需要 4 个点

所以首先你应该确定它是哪种类型的依赖,然后尝试找到那个特定函数生成器的系数。例如:

  • 如果您有输入x0<x1<x2<x3,... 和输出y0,y1,y2,y3,..
  • k0=y0/x0,k1=y1/x1,...
  • 如果k0<<k1<<k2<<k3<<...k0>>k1>>k2>>k3>>... 可能是指数依赖性
  • 否则使用多项式...

如果您有混合类型的信号,那么您需要更多的输入点来覆盖足够大的范围,并且可能需要某种approximation search 的系数来最小化已知输入和生成的输出之间的距离。如果你有足够的分数,你可以标准化数据集并使用correlation coefficient 将其与支持的函数生成器进行比较以简化决策

[备注]

所以你需要指定:

  • 将支持哪种依赖项(类型、单数、组合)
  • 您有多少输入点(最少、推荐等...)
  • 目标精度/误差是多少
  • x,y 的目标范围是多少

【讨论】:

    最近更新 更多