【问题标题】:Project Euler 9 UnderstandingProject Euler 9 理解
【发布时间】:2011-02-15 17:23:22
【问题描述】:

这个问题说明:

毕达哥拉斯三元组是三个自然数 a b c 的集合,其中,

a2 + b2 = c2

例如,32 + 42 = 9 + 16 = 25 = 52。

恰好存在一个毕达哥拉斯三元组,其 a + b + c = 1000。 找到产品 abc。

我不确定它想问你什么。我们是否试图找到a<sup>2</sup> + b<sup>2</sup> = c<sup>2</sup>,然后将这些数字插入a + b + c = 1000?

【问题讨论】:

  • 阅读“25 = 52”让我感到身体疼痛。有人请修复格式。原始项目 Euror 链接; projecteuler.net/index.php?section=problems&id=9
  • @RJFalconer- 抱歉,没有注意到,添加了一个 ^ 符号
  • 但你不关心“32 + 42 = 9 + 16”?

标签: math pythagorean


【解决方案1】:

您需要找到a、b 和c,这样a<sup>2</sup> + b<sup>2</sup> = c<sup>2</sup> 和a + b + c = 1000。然后需要输出产品a * b * c。

【讨论】:

  • a * b * c的意义是什么?答案肯定是 a、b 和 c 本身而不是他们的产品。
  • @icio:Euler 网站项目的本质是它接受一个数字作为答案。如果一个问题的解决方案由多个数字组成,那么问题必须以某种方式将最终结果提炼成一个数字。
  • 欧拉项目的大部分问题都是使用和来将几个数字合二为一,但在这种情况下,问题中已经给出了和,所以他们相当随意地选择了乘法。串联将是另一种选择。
  • @starblue:确实被使用了。在#49 例如:)
【解决方案2】:

如果您找到正确的见解,这些问题通常可以轻松解决。这里的诀窍是在编写循环之前使用一点代数。我给你一个提示。查看生成毕达哥拉斯三元组的公式。你能用一种有用的方式写出边长的总和吗?

【讨论】:

    【解决方案3】:

    就像大量的项目欧拉问题一样,这一切都是为了找到一组同时满足多个约束的数字。

    在这种情况下,约束是:

    1) a^2 + b^2 = c^2

    2) a+b+c = 1000

    在早期的问题中,解决方案可以像嵌套循环一样简单,尝试每种可能的组合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2016-04-30
      • 2015-12-25
      • 1970-01-01
      相关资源
      最近更新 更多