user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17620
Wohnort: Berlin
|
Mit Zeile 2 so:
| val arr = (0L to MAX) map {x => x * x * x}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | 1 12 9 10 (1729 ?= 1729)
1 103 64 94 (1092728 ?= 1092728)
1 150 73 144 (3375001 ?= 3375001)
1 249 135 235 (15438250 ?= 15438250)
1 495 334 438 (121287376 ?= 121287376)
2 16 9 15 (4104 ?= 4104)
2 34 15 33 (39312 ?= 39312)
2 24 18 20 (13832 ?= 13832)
2 89 41 86 (704977 ?= 704977)
2 150 83 141 (3375008 ?= 3375008)
2 127 95 106 (2048391 ?= 2048391)
2 206 128 188 (8741824 ?= 8741824)
2 300 146 288 (27000008 ?= 27000008)
2 466 165 459 (101194704 ?= 101194704)
2 385 252 345 (57066633 ?= 57066633)
2 498 270 470 (123506000 ?= 123506000)
|
usw. | 292 492 414 418 (143992576 ?= 143992576)
294 483 392 427 (138090771 ?= 138090771)
303 457 394 396 (123262120 ?= 123262120)
306 492 384 450 (147748104 ?= 147748104)
307 426 363 388 (106243219 ?= 106243219)
312 450 338 436 (121496328 ?= 121496328)
346 471 360 463 (145908847 ?= 145908847)
359 460 408 423 (143604279 ?= 143604279)
|
1x nachgerechnet (Zeile 1 oben)
|
snafu1
Anmeldungsdatum: 5. September 2007
Beiträge: 2133
Wohnort: Gelsenkirchen
|
Scheint jetzt korrekt zu sein. Jetzt muss man "nur" noch ein Muster in den Werten erkennen, damit man eine Berechnung schreiben kann, die ohne Brute Force auskommt. ☺
|
track
Anmeldungsdatum: 26. Juni 2008
Beiträge: 7174
Wohnort: Wolfen (S-A)
|
Bei Euren Lösungen beginnt Ihr immer bei i=1, und nicht bei i=0 ... ist das wirklich die Vorgabe ? Damit ergäben sich nämlich noch weitere Lösungen, die der Bestimmungsgleichung (0 +) b³ = c³ + d³ ... nur so als Frage. LG, track
|
fnumatic
Anmeldungsdatum: 20. Februar 2007
Beiträge: 379
|
Bruteforce (nicht auf Korrektheit geprüft)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | val MAX = 500
val cubes = (0L to MAX) map ( x => x * x * x)
val mtch = mutable.Map[Long, List[Pairs]]().withDefault(_ => Nil)
for (i <- 0 to MAX; j <- i to MAX) {
val sum = cubes(i) + cubes(j)
mtch.put(sum, Pairs(i, j) :: mtch(sum))
}
val flt = mtch filter (p => p._2.length > 1)
println("Anzahl Summen " + flt.size)
flt.keySet.toList.sorted foreach {
k =>
val l = flt(k)
println(k + " " + l)
}
|
/// | 562
1729 List(Pairs(9,10), Pairs(1,12))
4104 List(Pairs(9,15), Pairs(2,16))
13832 List(Pairs(18,20), Pairs(2,24))
20683 List(Pairs(19,24), Pairs(10,27))
32832 List(Pairs(18,30), Pairs(4,32))
39312 List(Pairs(15,33), Pairs(2,34))
40033 List(Pairs(16,33), Pairs(9,34))
46683 List(Pairs(27,30), Pairs(3,36))
|
|
VicariousVirus
(Themenstarter)
Anmeldungsdatum: 7. Mai 2011
Beiträge: 27
Wohnort: Berlin
|
Also:
Ich habe das Ding dann doch gelöst, danke an meine Fachschaft für den entscheidenden Tip!
Also ich habe statt eines 2d-Array einen "1d"-Array angelegt der mit Werte einer Form von M * M gibt und mit zwei for-loops das ganze befüllen. Anschließend habe ich es sortieren lassen und mit einer weiteren for-Schleife und der if-Schleife die mir meine gesuchten Elemente filter den Array auslesen lassen.
Wenn ich eine Bewertung dazu habe kann es, falls Interesse besteht auch gerne anfügen.
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17620
Wohnort: Berlin
|
track schrieb: Bei Euren Lösungen beginnt Ihr immer bei i=1, und nicht bei i=0 ... ist das wirklich die Vorgabe ?
Seit 10:37 (angekündigt) bzw. 10:51 nicht mehr. Interessanterweise wird bis 499 keine passende Gleichung gefunden, obwohl mit der 1, 2, 3, ... 42 als kleinster Zahl Lösungen existieren. Ich schätze man findet einen Beweis, wieso es mit 0 keine Lösung gibt.
|