找到与输入和输出匹配的数学算法

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

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

2:4 4:8 100:200 

它将意识到算法将是(输入* 2)或(输出/ 2)取决于我们想要的。

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

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

对于任何类型的输入/输出信号依赖都不能可靠地做到这一点,而你应该只支持一些你需要某种AI或非常复杂的神经网络+ 许多具有疯狂复杂性和未知的解决方案可靠性的函数发生器……

我会简化这个依赖关系,如:

  1. 多项式达到某种程度

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

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

    • 如果你想支持像sin wave这样的东西,那么你需要很多输入来决定依赖的类型。

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

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

因此,首先您应该确定它的依赖类型,然后尝试查找该特定函数生成器的系数。 例如:

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

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

[笔记]

所以你需要指定:

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