【欧拉猜想】是否有无穷多个不可约分的正整数解

```a^3+b^3=c^3
a^4+b^4+c^4=d^4
a^5+b^5+c^5+d^5=e^5
……```

`27^5+ 84^5+ 110^5+ 133^5= 144^5`

```    @Test
fun test3() {
var list1 = arrayListOf<Pair<Long, String>>()
var list2 = arrayListOf<Pair<Long, String>>()

val start1 = System.currentTimeMillis()
// 假设： a<b<c<d, 肯定有： e > {a,b,c,d}
for (a in 1..200L) {
for (b in a..200L) {
for (c in b..200L) {
Propositions.f3(a, b, c)
}
}
}
val end1 = System.currentTimeMillis()
println("Using Time1: \${(end1 - start1)} ms")
println("list1.size=\${list1.size}")

val start2 = System.currentTimeMillis()
for (d in 1..200L) {
(d..200L).mapTo(list2) { Pair(Propositions.f4(it, d), "e=\$it,d=\$d") }
}
val end2 = System.currentTimeMillis()
println("Using Time2: \${(end2 - start2)} ms")
println("list2.size=\${list2.size}")

/*
首先想到的，遍历所有元素，穷举判断；更进一层：平均切割 List，每一段开启1个线程计算。
val start3 = System.currentTimeMillis()
loop@ for (x in list2) {
if (list1.contains(x)) {
println("x=\$x")
break@loop
}
}
val end3 = System.currentTimeMillis()
println("Using Time3: \${(end3 - start3)} ms")
*/

val start3 = System.currentTimeMillis()
var list1n = arrayListOf<List<Pair<Long, String>>>()
val segment = 10_0000
val step = list1.size / segment
for (i in 1..segment) {
var listi = arrayListOf<Pair<Long, String>>()
for (j in ((i - 1) * step)..(i * step - 1)) {
}
}
println("list1n.size=\${list1n.size}")
val end3 = System.currentTimeMillis()
println("Using Time3: \${(end3 - start3)} ms")

val start4 = System.currentTimeMillis()
list1n.forEach {
for (x in list2) {
it.filter { x.first == it.first }
.forEach { println("\$x,\$it") }
}
})
}
}
val end4 = System.currentTimeMillis()
println("Using Time4: \${(end4 - start4)} ms")
}```

```    fun f3(a: Long, b: Long, c: Long): Long {
return a * a * a * a * a +
b * b * b * b * b +
c * c * c * c * c
}

fun f4(e: Long, d: Long): Long {
return e * e * e * e * e - d * d * d * d * d
}```

```Using Time1: 3247 ms
list1.size=1353400
Using Time2: 19 ms
list2.size=20100
list1n.size=100000
Using Time3: 72 ms
(20301568331, e=144,d=133),(20301568331, a=27,b=84,c=110)
(45812264224, e=144,d=110),(45812264224, a=27,b=84,c=133)
(57735244800, e=144,d=84),(57735244800, a=27,b=110,c=133)
(61903015317, e=144,d=27),(61903015317, a=84,b=110,c=133)
Using Time4: 238898 ms```

1988年，Noam Elkies找出一个对n= 4制造反例的方法。他给出的反例中最小的如下：

`2682440^4+ 15365639^4+ 18796760^4= 20615673^4`

Roger Frye以Elkies的技巧用电脑直接搜索，找出n= 4时最小的反例：

`95800^4+ 217519^4+ 414560^4= 422481^4`

image.png

1988年，哈佛大学的Noam Elkies在一次计算中，发现了这个等式：

image.png

【参考阅读】

1637年左右，“业余数学家之王”费马先生在阅读丢番图《算术》拉丁文译本时，曾在第11卷第8命题旁写道：“将一个立方数分成两个立方数之和，或一个四次幂分成两个四次幂之和，或者一般地将一个高于二次的幂分成两个同次幂之和，这是不可能的。关于此，我确信已发现了一种美妙的证法 ，可惜这里空白的地方太小，写不下。”

1872年，英国当时最著名的数学家凯利正式向伦敦数学学会提出了这个问题，于是四色猜想成了世界数学界关注的问题，于是又一个猜想引得无数一流数学家抛头颅洒热血。

1742年6月7日，哥德巴赫写信给欧拉，提出了一个猜想：任何一个奇数，比如77，可以把它写成三个素数之和，即77=53+17+7；又如461可以写成257+199+5，仍然是三个素数之和。即发现“任何大于5的奇数都是三个素数之和。”

1742年6月30日欧拉先生给哥德巴赫回信了：这个命题看来是正确的，但是暂给不出严格的证明。同时欧拉对上述命题做了修改：任何一个大于2的偶数都是两个素数之和。这个欧拉版本是现在常见的猜想陈述，当然，他到死也没能给予证明。

200多年过去了，至今没有完全解决。不过由此猜想带来的数学新方法则层出不穷，从另一方面促进数学自身的发展。

“马”失前蹄

17世纪法国著名的僧侣数学家马林•梅森（Mersenne）在欧几里得、费马等人有关研究的基础上对2p－1（数学界把这种数称为 “梅森数”，并以Mp记之。）作了大量的计算、验证，并于1644年在他的《物理数学随感》一书中断言：

0 条评论

相关文章

35511

1091

只有程序猿才懂的道理

① 面试官：熟悉哪种语言？ 应聘者：C# 面试官：知道什么叫类么？ 应聘者：我这人实在，工作努力，不知道什么叫累。 面试官：知道什么是包？ 应聘者：我这人实在，...

3678

2375

算法竞赛入门经典（第2版）(算法艺术与信息学竞赛).pdf

《算法竞赛入门经典（第2版）》是一本算法竞赛的入门与提高教材，把C/C++语言、算法和解题有机地结合在一起，淡化理论，注重学习方法和实践技巧。全书内容分为12 ...

1603

2145

2214

1184