【问题标题】:Representing an integer as the sum of four squares将整数表示为四个平方和
【发布时间】:2011-09-26 04:27:33
【问题描述】:

给定一个正整数m,找出四个整数abcd,使得a^2 + b^2 + c^2 + d^2 = mO(m^2 log m)中。可以使用额外的空间。

我能想到O(m^3) 解决方案,但我对O(m^2 logm) 解决方案感到困惑..

【问题讨论】:

  • 这是作业吗?
  • @Snoopy:我希望我的编辑符合您的要求。如果没有,请随时回滚。
  • 我添加了一个homework 标签,如果不是,请随意删除它。

标签: algorithm number-theory


【解决方案1】:

第一个提示:

平方元素从1到m^2排序的复杂度是多少

第二个提示:

看看这篇文章以获得一些帮助:

Break time, find any triple which matches pythagoras equation in O(n^2)

第三个提示:

如果您需要更多帮助:(来自 yi_H 对上一篇文章的回复):

我猜 O(n^2 log n) 是对数字进行排序,取任意两个 对 (O(n^2)) 并查看 c^2 的数字中是否存在 c = a^2 + b^2。您可以使用二进制搜索来查找 c,即 O(log(n))。

作者:yi_H

现在比较 n 和 sqrt(m)

希望你能找到解决办法。

【讨论】:

    【解决方案2】:

    有一个经典的拉格朗日定理说每个自然数都是四个平方的和。

    关于这个主题的Wikipedia 页面提到有一种随机算法用于计算在 O(\lg^2 m) 时间内运行的表示(以上所有建议都是 m 中的多项式,即它们在问题实例的大小(因为数字 m 可以用 \lg m 位编码)。

    顺便说一句,拉格朗日定理证明了带有加号和时间的整数的不可判定性(因为自然数是不可判定的,并且可以根据该定理在带有加号和时间的整数中定义)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      • 1970-01-01
      • 2011-12-15
      • 1970-01-01
      • 1970-01-01
      • 2021-02-09
      • 2011-07-11
      相关资源
      最近更新 更多