5

编辑:我将其移至 cstheory.stackexchange.com

我想要对输入的整数序列进行二元决策。对于序列中给定的 n,无论它是否为素数。不要使用 AKS,不要使用 Miller Rabin,不要使用试除法,甚至不要硬编码,因为最后一位数字必须是 1、3、7、9 并且必须与 1 或 5 一致模 6。

只使用机器学习。

我不确定,但我评估“普遍共识”是/将是机器学习技术(神经网络、SVM、二元分类器、聚类、贝叶斯推理等)将无法解决这个问题?

人们怎么想?

好的,其次,如果我们有一些带有一些有用信息的整数的向量表示(未知),是否存在任何主要的原则反对机器学习能够将 n 分类为素数或复合数,因为我们可以“选择正确的功能”可以这么说?

让我们忽略向量包含 n 的因式分解的简单情况。

4

1 回答 1

2

机器学习并不是万能的。机器学习,顾名思义,就是从数据中学习。问题是要学习一些东西,我们需要数据中的一种模式,我们可以教算法学习。

根据定义:素数是大于 1 的自然数,除了 1 和它自身之外没有正除数。

这里的基本困难是素数序列

2, 3, 5, 7, 11, 13, 17, 19, 23, . . .

行为“不可预测”或“随机”,我们没有第 n 个素数的(有用的)精确公式!

即使你尝试训练一个算法,你也会得到一些近似解决方案的东西。您无法选择足以预测解决方案的功能。

比方说,困难的方法是用这些特征训练你的模型:

  • 任何以偶数结尾的数(2 除外)都不是质数。
  • 所有数字相加等于 3、6、9 或其除数的任何数字都不是质数。
  • 任何以 5 结尾的数字都不是质数。(5个除外)
  • 任何具有相同数字的数字都不是质数。(除非以 1 结尾)

您最终会得到所有素数以 1、3、7 或 9 结尾,但并非所有素数都是素数。

因此,当我们想要一个精确的解决方案并且已经有一个精确的方法来计算它时,不需要找到一个算法来近似某些东西。

于 2013-01-11T00:26:31.337 回答