栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

通过查找模式从序列生成下一个元素的算法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过查找模式从序列生成下一个元素的算法

简短的答案是:您要的是不可能的。

您正在寻找的是一种通常与曲线拟合有关的算法。对于此特定问题,一种可能的方法是Lagrange多项式。

但是请注意,通常来说,您想要的东西可能没有真正的解决方案。例如,考虑以下简单序列:

2, 4, 6, 8, 10, 12, 14
。接下来的几个数字是什么?

您可能会说答案是

16, 18, 20
依此类推,因为您使用方程式
f(n) = 2*n
where
n
是项的位置(从1开始)。

请注意,形式的等式是无限的:

f(n) = [(n-1)*(n-2)*(n-3)*(n-4)*(n-5)*(n-6)*(n-7) * g(n)] + 2*n

第二项对产生正确的值,

n = 1..7
而第一项
0
仅对的那些值产生a
n
。因此,您可以为
g(n)
第一项中的最后一个乘数选择任何函数(具有有限范围),并从
n=8
开始获取所需的任何值。

例如,对于

g(n) = 20*n

f(n) = (n-1)*(n-2)*(n-3)*(n-4)*(n-5)*(n-6)*(n-7) * 20 * n + 2*n

将产生一个列表:

2, 4, 6, 8, 10, 12, 14, 806416

因此,您指出的问题是无法解决的。

但是,如果表征算法的形式(或表征要使用的函数族来解决问题),则可以获得最适合数字的函数。例如,您可以说它

f(n)
是阶数的多项式
1
(线性方程式),它将减少可能性的数量并给您
f(n)= 2 * n
。这些方法中的某些方法传统上用于机器学习,尤其是线性回归和逻辑回归。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/418412.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号