问题描述
作为最终结果,我想要一个计算机程序,它可以接受输入和输出列表,然后应用相同的算法进入另一个数字的输入/输出,即:
如果给出这个输入/输出列表
2:4
4:8
100:200
它将意识到算法将是(输入* 2)或(输出/ 2)取决于我们想要的。
因此,如果给出数字16,并且要求产生输出,程序将以32响应。如果给出数字10并且要求产生输入,则它将以5响应。
将这个“硬编码”到程序中显然会很简单,尽管我想学习如何让程序自己学习算法。 我知道这会变得相当复杂而且速度相当快。
1楼
对于任何类型的输入/输出信号依赖都不能可靠地做到这一点,而你应该只支持一些你需要某种AI或非常复杂的神经网络+ 许多具有疯狂复杂性和未知的解决方案可靠性的函数发生器......
我会简化这个依赖关系,如:
多项式达到某种程度
- (可以使用任何插值/近似)
-
y=a0+a1*x+a2*x*x+a3*x*x*x
指数
-
y=a0+a1^x
-
其他
- 如果你想支持像sin wave这样的东西,那么你需要很多输入来决定依赖的类型。
无论如何,我认为只有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>>...
它可能是指数依赖 - 否则使用多项式...
如果你有混合型信号,那么你需要更多的输入点覆盖足够大的范围,并且可能需要某种系数来最小化已知输入和生成输出之间的距离。 如果有足够的点,则可以对数据集进行标准化,并使用将其与支持的函数生成器进行比较,以简化决策
[笔记]
所以你需要指定:
- 将支持哪种依赖(类型,单数,组合)
- 你有多少输入点(最小,推荐等...)
- 什么是目标精度/误差
- 什么是x,y的目标范围