- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
给定:k个不同的素数说a1, a2, ....., ak
目标:将给定素数的乘积写为完全平方和所需的最小完全平方数。
例子:
k = 2, a1 = 3, a2 = 5
a1*a2 = 15 = 9 + 4 + 1 + 1
即 4 个完全平方数之和
k = 3, a1 = 2, a2 = 5, a3 = 11
a1*a2*a3 = 110 = 100 + 9 + 1
即 3 个完全平方数的和
我的算法
令 p = a1*a2*............*ak
counter = 0
while p != 0:
find the largest perfect square <= p say z
p = p-z
counter = counter + 1
return counter
我已经用几个例子对其进行了测试。对我来说这似乎是正确的。但根据少数例子进行概括是不正确的。如何证明这一点(如果算法是正确的)?
最佳答案
实际上,在这些情况下您的解决方案是错误的:
k = 1, a1 = 61 => 你的结果:61 = 49 + 9 + 1 + 1 + 1/最佳结果:61 = 36 + 25
k = 2, a1 = 2, a2 = 37 => 你的结果:74 = 64 + 9 + 1/最佳结果:74 = 49 + 25
Legendre's Three-square Theorem是所有自然数 n 除了 n 是 4^a (8b + 7)
的形式可以表示三个平方和。
还有Lagrange's Four-square Theorem所有自然数都可以表示四平方和。
所以算法是:
4^a (8b + 7)
的形式。您可以使用质因数分解。如果是,答案是 4。您可以为 O(sqrt(n))
执行操作 1,为 O(log(n))
执行操作 2,为 O( sqrt(n) * log(n))
,所以整体时间复杂度为O(sqrt(n) * log(n))
。
编辑:由于 n 是互不相异的质数积,所以没有出现平方数,所以情况 2 没有出现。如果 n mod 8 = 7,则出现情况 1。
关于algorithm - 不同质数的乘积作为完全平方和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41241402/
尝试构造一段代码,返回range(1, limit)中的一个数是否为两个平方数之和(平方数如1**2 = 1,2**2 = 4 - 所以我试图分配给一个数字列表,它们是否是任何这些平方数的总和组合 -
我确实有一个矩阵,行中包含观察值(不同 pH 下的测量值),数据点作为列(随时间变化的浓度)。因此,一行包含一个 pH 值的不同数据点。 我确实想对数据拟合 ODE。所以我定义了一个成本函数,并想计算
令我惊讶的是,调用 np.inner 计算平方和比在预先计算的平方数组上调用 np.sum 快大约 5 倍: 对这种行为有什么见解吗?实际上,我对平方和的快速实现很感兴趣,因此也欢迎提出这些想法。 最
我使用lm(x~y1 + y1 + ... + yn)估计了线性回归模型,并为了应对当前的异方差性,我让 R 估计了稳健的标准误差 coeftest(model, vcov = vcovHC(mode
我使用lm(x~y1 + y1 + ... + yn)估计了线性回归模型,并为了应对当前的异方差性,我让 R 估计了稳健的标准误差 coeftest(model, vcov = vcovHC(mode
我是一名优秀的程序员,十分优秀!