【发布时间】:2018-09-20 15:07:24
【问题描述】:
我有一个方程式。
a4 + b4 = c4 + d4
变量 a、b、c 和 d 可以取 0 到 1000 之间的任何值。编写一个程序,打印满足上述等式的所有可能的 a、b 和 c、d 对。
我尝试使用 Java 来实现。
我尝试的一种方法是构建一个包含键值对的映射:4>、4>、4>....4>。构建地图后,我希望遍历值列表并查看列表中两个元素的总和是否与列表中其他两个元素的总和匹配。我被困在这一点上。
public static void getMatchingPairs()
{
long a;
long b;
long c;
long d;
Map<Integer,Long> map = new HashMap<Integer, Long>();
for(int i = 0; i < 1001; i++)
{
long res = Double.valueOf(Math.pow(i, 4)).longValue();
map.put(i,res);
}
List<Long> lst = (List<Long>) map.values();
}
【问题讨论】:
-
成对订购了吗?例如。
(1,2),(1,2)与(1,2),(2,1)、(2,1),(1,2)和(2,1),(2,1)是否不同?那是 1 个还是 4 个“可能的对”? -
在我看来这不是一个等式。例如 10 = 10 => 7+3 = 2+8 |那么你只需得到基于 4 或每个数字的日志。
-
@Andreas 这些是 4 对有效的对。
-
@Juan 值是 0 到 1000 之间的整数。当然,“整数”部分没有说明,但否则没有任何意义,否则会有无限的解决方案。
-
好的:日志基数为 4 或数字必须是 0 到 1000 之间的整数。
标签: java collections polynomial-math