Die Mathe-Redaktion - 18.09.2019 22:27 - Registrieren/Login
Auswahl
ListenpunktHome
ListenpunktAktuell und Interessant ai
ListenpunktArtikelübersicht/-suche
ListenpunktAlle Links / Mathe-Links
ListenpunktFach- & Sachbücher
ListenpunktMitglieder / Karte / Top 15
ListenpunktRegistrieren/Login
ListenpunktArbeitsgruppen
Listenpunkt? im neuen Schwätz
ListenpunktWerde Mathe-Millionär!
ListenpunktAnmeldung MPCT Sept.
ListenpunktFormeleditor fedgeo
Schwarzes Brett
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden. Mitglieder können den Matheplanet-Newsletter bestellen, der etwa alle 2 Monate erscheint.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 651 Gäste und 20 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Zum letzten Themenfilter: Themenfilter:
Matroids Matheplanet Forum Index
Moderiert von viertel
Matroids Matheplanet Forum Index » Rätsel und Knobeleien (Knobelecke) » * Die Mondkette
Druckversion
Druckversion
Antworten
Antworten
Seite 1   [1 2 3]   3 Seiten
Autor
Kein bestimmter Bereich * Die Mondkette
Primentus
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 18.02.2016
Mitteilungen: 987
Aus: Deutschland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2019-05-01


Hallo liebe Rätselfreunde,

es ist mal wieder Zeit für ein Rätsel aus der Primentus'schen Rätselschmiede.

Daher möchte ich Euch heute das Rätsel "Die Mondkette" vorstellen.

Wir bilden wie aus nachfolgender Zeichnung ersichtlich eine stabile Kette von exakt aneinandergereihten Halbkreisen von der Erde bis zum Mond, wobei die Radien der Halbkreise jeweils Primzahlwerte sind:



Der Radius des ersten Halbkreises hat den Wert der kleinsten Primzahl, der nächste Halbkreis den Radius der zweitkleinsten Primzahl, der dritte Halbkreis den Wert der drittkleinsten Primzahl, usw.

Man beachte:
1. Die Werte der Radien sind in Millimeter zu betrachten!
2. Die in der Zeichnung dargestellten Proportionen und Entfernungen hinsichtlich Erde, Mond und Halbkreisen sind nicht maßstabsgetreu wiedergegeben!

Aufgabe:
Bis einschließlich welchem Primzahlradius muss die Halbkreis-Kette mindestens gebildet werden, um die mittlere Entfernung Erde - Mond zu erreichen oder zu überschreiten?

Hinweis: Die Materialdicke der Kette ist dabei zu vernachlässigen!

Bitte beachte, dass keine Lösungseinsendungen hier im Thread gemacht werden sollen, sondern lediglich per Privatnachricht an mich. Vielen Dank!

Wer am schnellsten die richtige Lösung einsendet, erhält die (virtuelle) Goldmedaille, der/die zweitschnellste mit der richtigen Lösung die (virtuelle) Silbermedaille und der/die drittschnellste die (virtuelle) Bronzemedaille.

Viel Spaß beim Rätseln!

LG Primentus



  Profil  Quote  Link auf diesen Beitrag Link
Dies ist eine Knobelaufgabe!
Der Themensteller hat bestimmt, dass Du Deine Lösung nicht direkt im Forum posten darfst.
Sende stattdessen Deine Lösung als private Nachricht an den Themensteller. Benutze dazu den Link 'Privat', den Du unter seinem Beitrag findest.
Der Themensteller wird zu gegebener Zeit über eingesandte (richtige) Lösungen informieren
und nach Ablauf einer (von ihm) festgelegten Zeit alle Lösungen veröffentlichen.
Primentus
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 18.02.2016
Mitteilungen: 987
Aus: Deutschland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, vom Themenstarter, eingetragen 2019-05-01


Hallo,

die Goldmedaille geht an pzktupel für die am schnellsten eingesandte richtige Lösung.
Es ist zugleich die erste eingereichte Lösung überhaupt.

Hervorragende Leistung!

Herzlichen Glückwunsch und vielen Dank für's Mitmachen!

LG Primentus



  Profil  Quote  Link auf diesen Beitrag Link
Primentus
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 18.02.2016
Mitteilungen: 987
Aus: Deutschland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, vom Themenstarter, eingetragen 2019-05-02


Hallo,

die Silbermedaille geht an Kitaktus für die am zweitschnellsten eingesandte richtige Lösung, die auch sehr gut erklärt wurde.

Super Leistung!

Herzlichen Glückwunsch und auch Dir vielen Dank für's Mitmachen!

LG Primentus



  Profil  Quote  Link auf diesen Beitrag Link
Primentus
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 18.02.2016
Mitteilungen: 987
Aus: Deutschland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, vom Themenstarter, eingetragen 2019-05-03


Hallo,

die Bronzemedaille geht an gonz für die am drittschnellsten eingesandte richtige Lösung.

Sehr gute Leistung!

Herzlichen Glückwunsch und auch hier Danke für's Mitmachen!

Weitere Einsendungen können gerne noch gemacht werden, aber die Medaillen sind nun vergeben. Es gibt jetzt also bestenfalls noch den vierten Platz zu vergeben.

LG Primentus



  Profil  Quote  Link auf diesen Beitrag Link
Primentus
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 18.02.2016
Mitteilungen: 987
Aus: Deutschland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, vom Themenstarter, eingetragen 2019-05-03


Hallo,

der 4. Platz geht an hyperG für die am viertschnellsten eingesandte richtige Lösung.

Sehr schön!

Herzlichen Glückwunsch und danke für's Mitmachen!

LG Primentus



  Profil  Quote  Link auf diesen Beitrag Link
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 744
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, eingetragen 2019-05-03


Das ist gleichzeitig auch eine schöne Optimierungsaufgabe, wenn
- die Summe noch größer wird (z.B. Entfernung in µm oder nm)
- die Geschwindigkeit minimiert werden soll

Bei der Funktion Prime(x) gerät man schnell an seine Grenzen
-> man muss dann nach NextPrime wechseln, was wir ja hier im Forum
schon mal hatten (NextPrime-Benchmark ).

Außerdem kann man die Summen gut parallelisieren...



  Profil  Quote  Link auf diesen Beitrag Link
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 3177
Aus: Harz
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, eingetragen 2019-05-03



Hat überhaupt jemand das Ganze bisher anders als mit computerunterstützung gelöst? Wir könnten dann ja mal die laufzeiten der betreffenden Programme vergleichen :)




-----------------
~ to fight! (Don Quijote de la Mancha)



  Profil  Quote  Link auf diesen Beitrag Link
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 744
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.7, eingetragen 2019-05-04


Hallo gonz,

genau das meinte ich -> aber bitte mit größeren
Zahlen (mindestens Faktor 1000 also Entfernung in µm), da kurze Zeiten in ms schon Schwankungsbreite der PC-Uhr ausmachen und damit schwer vergleichbar sind.



  Profil  Quote  Link auf diesen Beitrag Link
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 978
Aus: Thüringen,Erfurter Raum
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.8, eingetragen 2019-05-04


Nee, habs mit Computer nur.

Die Primzahlen waren auch noch aus einer Liste gelesen


Am schnellsten wäre natürlich eine Obergrenze zu berechnen und dann durch sieben in einem Ritt erzeugen und addieren.




-----------------
Pech in der Liebe , Glück im Verlieren !!!



  Profil  Quote  Link auf diesen Beitrag Link
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 3177
Aus: Harz
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.9, eingetragen 2019-05-04


pzktupel:

Genau. Die Obergrenze lässt sich gut abschätzen, und dann geht es mit der Sieberei für unsere Zwecke hier recht gut (ich habe mich wieder mal gewundert wie effektiv das ist). Das Problem für größere Zahlen kommt, wenn der Speicher nicht mehr ausreicht. Die Laufzeit beim Sieben dürfte (ohne dass ich da jetzt genauer nachgedacht habe) etwa mit dem Quadrat der vorgegebenen max. Primzahl, also ( logarithmische Terme vernachlässigend) linear mit der angestrebten Summe gehen, so dass man sich da für die von hyperG gewünschte Größenordnung auch etwas besseres ausdenken müsste.

Ich messe bei der vorgelegten Aufgabe die Laufzeit bei dem beschriebenen Algorithmus um eine Sekunde herum, bei einem Zusatzfaktor von 1000 passt das Sieb noch in den Speicher, und es wird 1:38 Minuten Rechenzeit verbraucht. Also wäre auch der Faktor von 1 Million noch auf diese Art zu erschlagen ( wobei man da mit dem Speicher etwas tricksen müsste), wenn man einen Tag Rechenleistung spendieren mag.

Aber warten wir mal ab, bis hier offiziell "aufgelöst" wurde :)

Jedenfalls eine schöne Aufgabe.

Grüße aus dem Harz
Gerhard/Gonz


-----------------
~ to fight! (Don Quijote de la Mancha)



  Profil  Quote  Link auf diesen Beitrag Link
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 744
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.10, eingetragen 2019-05-04


Noch mal genauer:

Schon einer der kürzesten aber uneffektiven Wege lautet:
mathematica
...
f[x_]:=Sum...
b2 = IntegerPart[ x /. FindRoot[f[x] - a, {x, 99160}, WorkingPrecision -> genau]]
...

und ist in 2,5 s fertig.

Wenn man das alles optimiert, sollte es mindestens 100 mal schneller werden & wir sind im ms Bereich (schlecht vergleichbar, da PC Uhren nicht mal 1 ms genau sind!).
Daher der Vorschlag µm, also Summengrenze nicht 384400*10^6
sondern 384400*10^9 (dann etwa 125 s für dieses Beispiel)



  Profil  Quote  Link auf diesen Beitrag Link
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 3177
Aus: Harz
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.11, eingetragen 2019-05-04


Genau :)
Und mein erstes Gebot lautet also:

mm => ca. 1 Sekunde
µm => 98 Sekunden

python
abstand  = 384400000000/2
maxprime = 3000000
 
myabstand = 2 
myprime   = 3 
maybeprime   = [True]*maxprime 
 
while myabstand<abstand and myprime<maxprime:
    if maybeprime[myprime]:
        myabstand+=myprime
        alsonoprime=3*myprime 
        while alsonoprime<maxprime:
            maybeprime[alsonoprime]=False
            alsonoprime+=2*myprime 
    #    print("Prime = "+str(myprime)+" Summe ist jetzt "+str(myabstand))
    myprime+=2
 
if myprime>=maxprime:
    print("Es waren leider nicht genug Primzahlen am Start")
else:
    print("Habe fertig - my prime = "+str(myprime-2))



-----------------
~ to fight! (Don Quijote de la Mancha)



  Profil  Quote  Link auf diesen Beitrag Link
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 978
Aus: Thüringen,Erfurter Raum
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.12, eingetragen 2019-05-04


Ich habe schon soviel Siebe gebastelt, da würde mir was einfallen.
Man kann auch in kleinen Schritten sieben lassen, das wäre noch schneller.
Dabei werden die Startpunkte der Teiler gespeichert usw.


[Die Antwort wurde nach Beitrag No.10 begonnen.]

@Gonz, welcher Chip, und beteiligte Kerne ?


-----------------
Pech in der Liebe , Glück im Verlieren !!!



  Profil  Quote  Link auf diesen Beitrag Link
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 3177
Aus: Harz
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.13, eingetragen 2019-05-04


i7-4770, 3.40GHz, 1 Kern genutzt.

Ich mag es im Augenblick schlicht und doch wirksam - da ist sicher sehr viel Luft nach oben :)


-----------------
~ to fight! (Don Quijote de la Mancha)



  Profil  Quote  Link auf diesen Beitrag Link
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 978
Aus: Thüringen,Erfurter Raum
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.14, eingetragen 2019-05-04


Biete:

Summe: 384403740130 Primzahl 2332507
 0.03126121037348639 Sekunden

[Die Antwort wurde nach Beitrag No.12 begonnen.]

1 Kern Ryzen 3 GHz

Code, wenn Obergrenze bekannt :

REDIM PF(2400000) AS UBYTE  
DIM AS UINTEGER AV,SUM,GRENZE,su,bs
DIM AS DOUBLE TIMER2,TIMER1


SUM=2+3+5+7+11
GRENZE=384400000000/2
TIMER1=TIMER
FOR av=3 TO SQRT(2400000) STEP 2
IF av>3 AND av MOD 3=0 THEN GOTO BS
IF av>5 AND av MOD 5=0 THEN GOTO BS
IF av>7 AND av MOD 7=0 THEN GOTO BS
IF av>11 AND av MOD 11=0 THEN GOTO BS
IF av>13 AND av MOD 13=0 THEN GOTO BS
FOR bs=av*av TO 2400000 STEP 2*av
PF(bs)=1
NEXT bs
BS:
NEXT av

SU=11

WHILE SUM<GRENZE
su+=2
IF PF(su)=0 THEN SUM+=su
WEND
TIMER2=TIMER
PRINT "Summe: ";SUM*2;" Primzahl ";su

PRINT TIMER2-TIMER1;" Sekunden"
SLEEP





-----------------
Pech in der Liebe , Glück im Verlieren !!!



  Profil  Quote  Link auf diesen Beitrag Link
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 978
Aus: Thüringen,Erfurter Raum
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.15, eingetragen 2019-05-04


Verbessert...


-----------------
Pech in der Liebe , Glück im Verlieren !!!



  Profil  Quote  Link auf diesen Beitrag Link
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 744
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.16, eingetragen 2019-05-04


Siehst Du Norman, µm ist das Mindeste, wenn wir jetzt schon im 1 s Bereich sind, wo noch nicht mal parallel gerechnet wurde.

Eigentlich müsste man jetzt schon auf nm gehen. Da wird denn die Verwendung von Arrays auch uneffektiv...

Mathematica ist bei mm & µm mit Prime[] 4,72 mal schneller als der uneffektive NextPrime[]:
Einfache While-Schleife mit Prime-Summen:
mm: 0,28 s
µm: 10,37 s (auch 82519663)

Selbst mit 4 Threads würde ich also die 1 s nicht schaffen und muss auf cpp wechseln...

[Die Antwort wurde nach Beitrag No.14 begonnen.]



  Profil  Quote  Link auf diesen Beitrag Link
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 3177
Aus: Harz
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.17, eingetragen 2019-05-04


nice :) Ich guck mir nachher mal in Ruhe an, was du da gemacht hast. Das Ergebnis kann ich so bestätigen.

Ich denke mal für die nm kann ich noch mithalten, indem ich auf Bitarrays übergehe. Danach wird tatsächlich mit der einstufigen Sieberei Schluss sein...

[Die Antwort wurde nach Beitrag No.15 begonnen.]


-----------------
~ to fight! (Don Quijote de la Mancha)



  Profil  Quote  Link auf diesen Beitrag Link
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 978
Aus: Thüringen,Erfurter Raum
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.18, eingetragen 2019-05-04


Da ist mir ein Fehler passiert.....zu viel gesiebt.
Neues Ergebnis für  Millimeter,Mikrometer,Nanometer:

Fertig: Sieb arbeitet mit kleinen Arrays




-----------------
Pech in der Liebe , Glück im Verlieren !!!



  Profil  Quote  Link auf diesen Beitrag Link
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 978
Aus: Thüringen,Erfurter Raum
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.19, eingetragen 2019-05-04


Okay, Bug beseitigt....

Ich gebe vor:

Millimeter:
Summe: 384403740130 Primzahl 2332507
 0.016 Sekunden

Mikrometer:
Summe: 384400053463960 Primzahl 82519663
 0.686 Sekunden


Nanometer:
Summe: 384400004843090200 Primzahl 2858829823
 26.991 Sekunden


Singlecore Berechnung !
____________________________
Geht noch schneller...bis gleich


So, Endoptimierung.....

Milli: Summe: 384403740130 Primzahl 2332507
 0.02034156322770286 Sekunden ( Verlust durch Voroptimierung )

Mikro:
Summe: 384400053463960 Primzahl 82519663
 0.5536399677075679 Sekunden

Nano:
Summe: 384400004843090200 Primzahl 2858829823
 20.21999819097982 Sekunden

Mehr fällt mir nicht mehr ein.



-----------------
Pech in der Liebe , Glück im Verlieren !!!



  Profil  Quote  Link auf diesen Beitrag Link
Primentus
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 18.02.2016
Mitteilungen: 987
Aus: Deutschland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.20, vom Themenstarter, eingetragen 2019-05-04


Hallo,

nachdem hier schon eifrig über Algorithmen und Erweiterungen zur vorliegenden Aufgabe diskutiert wird, möchte ich das Rätsel nun auflösen:

Lösung des Rätsels "Die Mondkette"
Zunächst einmal: Die Entfernung Erde - Mond beträgt nach aktuellem Kenntnisstand 384400 km, wie man z. B. auf Wikipedia nachlesen kann (es ist der Wert der großen Halbachse).

Für die Berechnung ist es nun wichtig zu beachten, dass für die Überbrückung der Entfernung Erde - Mond jeweils die doppelten Radien der Halbkreise relevant sind. Die Kreiszahl Pi fließt hier nicht in die Berechnung mit ein, da es nicht um die Bogenlänge der Halbkreise geht.

Folglich muss also getestet werden, bis zu welcher Primzahl die Summe 2*2 mm + 2*3 mm + 2*5 mm + 2*7 mm + 2*11 mm + 2*13 mm + ... den Wert 384.400.000.000 mm erreicht ober überschreitet.

Es empfielt sich natürlich, dies mittels eines Computerprogrammes zu berechnen. In Mathematica beispielsweise ist diese Berechnung sehr einfach möglich, da bereits die leistungsstarke und nützliche Funktion Prime[n] zur Verfügung steht, welche die n-te Primzahl berechnet (zumindest übersteigt bei der vorliegenden Aufgabe der Wert n nicht den noch verarbeitbaren Maximalwert). In anderen Programmiersprachen muss man ggf. die Primzahlen erst berechnen.
So könnte der Mathematica-Code zur Lösung des Rätsels aussehen, wobei meine Berechnung auf der Einheit Meter basiert, d. h. die Radien habe ich mit $\frac{1}{1000}$ Meter eingepreist (die ermittelte Lösungsprimzahl ist somit in der Einheit Millimeter):
Mathematica
ReachesDistance[d_] := 
  Module[{i, s}, i = 1; s = 2*2/1000; 
    While[s < d, s = s + 2*Prime[i]/1000; i = i + 1]; 
    Return[{i - 1, Prime[i - 1]}]]
ReachesDistance[384400000]
 
(* Ausgabe *)
{171692, 2332507}

Die Lösung des Rätsel lautet somit 2332507, was die 171692. Primzahl darstellt. Der größte Halbkeis, der also dann den Mond erreicht, hat somit den Radius 2332,507 Meter.

Anmerkung
Es ist jedoch auch eine andere Lösung des Rätsels denkbar. Einer der Rätselteilnehmer hat eine wichtige Beobachtung mit ins Spiel gebracht. Die Frage ist: Was bedeutet eigentlich der allgemein bekannte Abstand zwischen Erde und Mond von 384400 km wirklich? Ist das wirklich der Abstand der beiden Oberflächen der Himmelskörper? Oder ist es nicht viel eher der Abstand der jeweiligen Mittelpunkte der beiden Himmelskörper?

In diesem Fall verringert sich die von den Halbkreisen zu überbrückende Distanz von 384400 km noch um den Erdradius und den Mondradius. Folglich geht es also um die Entfernung 384400 km - 6378 km - 1738 km = 376284000 km. Dies führt dann entsprechend zu einem geringeren Primzahlradius als Lösung. Ich habe diese Lösung ebenfalls gelten lassen, da sie mir fast richtiger erscheint als meine "Musterlösung".

Wie seht Ihr es? Ist es nicht so, dass der Abstand zweier Himmelskörper nicht als der Abstand deren beider Mittelpunkte zu verstehen ist? Demzufolge müsste man wirklich Erdradius und Mondradius vorher abziehen!

Allen Rätselteilnehmern vielen Dank für's Mitmachen!

Und nun kann gerne munter weiterdiskutiert werden über entsprechende Modifizierungen, Erweiterungen und Optimierungen der Algorithmen! smile

LG Primentus



  Profil  Quote  Link auf diesen Beitrag Link
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 978
Aus: Thüringen,Erfurter Raum
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.21, eingetragen 2019-05-04


@Primentus

Der offizielle Mittelwert ist der Beste, egal ab Mittelpunkt oder nicht.
Selbst der minimale Abstand ist kleiner als der Mittelwert abzgl Radien.
Was soll man nun nehmen ?

Das gleiche Spiel ginge auch mit 1 AE :-)


-----------------
Pech in der Liebe , Glück im Verlieren !!!



  Profil  Quote  Link auf diesen Beitrag Link
weird
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.10.2009
Mitteilungen: 4950
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.22, eingetragen 2019-05-04


@Primentus

Der Wert 384400 km für den mittleren Abstand Erde-Mond scheint mir mit den beiden Nullen am Ende doch arg gerundet zu sein. Verwendet man aber stattdessen etwa die Zahlen 384350 bzw. 384450, so ergeben sich sofort auch andere Ergebnisse für die Endprimzahl. Obige Zahl 384400 hätte somit in der Aufgabenstellung unbedingt mitangegeben werden müssen um daraus eine Aufgabe mit einer eindeutigen Lösung zu machen, schon gar, wenn der Abstand in mm gemessen wird.  wink



  Profil  Quote  Link auf diesen Beitrag Link
Primentus
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 18.02.2016
Mitteilungen: 987
Aus: Deutschland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.23, vom Themenstarter, eingetragen 2019-05-04


Hallo pzktupel,

ja - zumindest scheint das aber nicht ganz eindeutig zu sein, was im Fall von zwei Himmelskörpern der wirkliche Abstand ist. Aber da dieser eh etwas schwankt, kann es schon sein, dass man mit dem Mittelwert ganz gut hinkommt. Aber 100%ig exakt ist das dann irgendwie auch nicht.

LG Primentus

[Die Antwort wurde nach Beitrag No.21 begonnen.]



  Profil  Quote  Link auf diesen Beitrag Link
Primentus
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 18.02.2016
Mitteilungen: 987
Aus: Deutschland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.24, vom Themenstarter, eingetragen 2019-05-04


Hallo weird,

ja, Du hast wohl recht - vielleicht wäre es von Anfang an besser gewesen, die Entfernung der beiden Himmelskörper anzugeben, um das Kuddelmuddel zu vermeiden.

LG Primentus



  Profil  Quote  Link auf diesen Beitrag Link
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 978
Aus: Thüringen,Erfurter Raum
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.25, eingetragen 2019-05-04


Letzte Ergänzung......quasi mein Beitrag zur Primzahlsummenbildung. (Singlecoreleistung)

Mit Hilfe eines "17#=510510 Stempels "

Für Nanometer:

Summe: 384400004843090200 Primzahl 2858829823
 15.1272204426059 Sekunden

Der optimierte, aber sehr unübersichtliche Code....aus alten Ideen übernommen


DIM AS UINTEGER AV,SUM,GRENZE,su,bs,AD,count
DIM AS DOUBLE TIMER2,TIMER1
TIMER1=TIMER

REDIM PS(55000) AS USHORT
REDIM PF(55000) AS UBYTE


REDIM STA(510510) AS UBYTE
FOR av=3 TO 17 STEP 2
FOR bs=av TO 510510  STEP 2*av
STA(bs)=1
NEXT bs
NEXT av

FOR av=3 TO 235 STEP 2
FOR bs=av*3 TO 55000 STEP 2*av
PF(bs)=1
NEXT bs
NEXT av

count=0
FOR su=3 TO 55000  STEP 2
IF PF(su)=0 THEN count+=1:PS(count)=su
NEXT su

SUM=2+3+5+7+11+13+17
SU=58

GRENZE=384400000000000000\2

AD=0

BEGIN:
REDIM PF(510510) AS UBYTE
count=7
WHILE PS(count)<(AD+510510)^0.5
AV=PS(count)
bs=(AD\AV)*AV+AV-AD
IF bs MOD 2=0 THEN bs+=av
IF AD=0 THEN bs=av*3
FOR bs=bs TO 510510 STEP 2*av
PF(bs)=1
NEXT bs
count+=1
WEND

IF AD=0 THEN SU=19 ELSE SU=1
FOR su=su TO 510510 STEP 2
IF PF(su)=0 AND STA(SU)=0 THEN SUM+=(su+AD):IF SUM>GRENZE THEN GOTO Abbruch
NEXT su
AD+=510510
GOTO BEGIN


Abbruch:
TIMER2=TIMER
PRINT "Summe: ";SUM*2;" Primzahl ";su+AD

PRINT TIMER2-TIMER1;" Sekunden"
SLEEP





-----------------
Pech in der Liebe , Glück im Verlieren !!!



  Profil  Quote  Link auf diesen Beitrag Link
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 744
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.26, eingetragen 2019-05-04


So, komme gerade vom Schwimmwettkampf & muss umdenken.

Super Norman! Viel schneller als NextPrime!

Bevor ich auf cpp umschalte, wollte ich GP/Pari noch testen:
GP/Pari
wt=getwalltime()
k=1
p=2
su=2
suend=384400000000\2
while(su<suend,k++;p=nextprime(p++);su+=p;if(su>=suend,break));
print("Prime(",k,")=",p," sum=",su," su2=",su*2," in ",(getwalltime()-wt)*1.0/1000.0, " s")

minimal schneller als mathematica:
mm: 0.235 s
µm: 9.7 s

Alles noch ohne parallel...



  Profil  Quote  Link auf diesen Beitrag Link
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 3177
Aus: Harz
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.27, eingetragen 2019-05-05


So ich konnte es auch nicht lassen. Das Programm nach C zu portieren war einfach, damit ist es auch kein Problem eine "ein paar Megabytes" große Tabelle im RAM zu halten.

Für die µm Korrektur: nm habe ich nun also auch

Habe fertig - my prime = 2858829823

Das ansonsten völlig un-optimierte Programm braucht dafür etwas über 4 Minuten auf der oben angegebenen Konfiguration auf einem Kern.

Was auch heisst, dass ihr einfach mal so um Faktor 20-30 schneller seid :) Respekt.

Einen schönen Sonntag wünscht
gonz


C
#include <stdio.h>
#include <stdlib.h>
 
int main() {
 
long long int abstand  = 384400000000000000/2;
long int maxprime = 2900000000 ;
 
long long int myabstand = 2;
long int myprime   = 3;
long int loop;
char *maybeprime;
 
maybeprime = malloc(maxprime);
 
for (loop=3;loop<maxprime;loop+=2)
        maybeprime[loop]=1;
 
printf("Inits done.\n");
 
while ((myabstand<abstand) && (myprime<maxprime)) {
    if (maybeprime[myprime]>0) {
        myabstand+=myprime;
        long int alsonoprime=3*myprime;
        while (alsonoprime<maxprime) {
                maybeprime[alsonoprime]=0;
                alsonoprime+=2*myprime;
                }
        }
    myprime+=2;
    }
 
if (myprime>=maxprime)
    printf("Es waren leider nicht genug Primzahlen am Start\n");
else
    printf("Habe fertig - my prime = %li\n",myprime-2);
 
}



-----------------
~ to fight! (Don Quijote de la Mancha)



  Profil  Quote  Link auf diesen Beitrag Link
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 978
Aus: Thüringen,Erfurter Raum
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.28, eingetragen 2019-05-05


Habs mal nachgesehen, bei nm bin ich bei 3.2 MB RAM.. MB, nicht GB
Pikometer dürfte unter 30min dauern.


-----------------
Pech in der Liebe , Glück im Verlieren !!!



  Profil  Quote  Link auf diesen Beitrag Link
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 3177
Aus: Harz
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.29, eingetragen 2019-05-05


Ja, da wäre ich ggf. noch bei, weil es für die pm noch genug Speicher gibt und ich dann eben mal nen Tag warten müsste, was an sich auch ok ist. Ich werf das mal so Spaßeshalber an :)

Hm, erst machen, dann posten. Dafür reicht die 64Bit Arithmetik leider nicht mehr aus.... ( was leicht zu umgehen wäre, weil es nur das auf Aufsummieren der Primzahlen bezogen ist )


-----------------
~ to fight! (Don Quijote de la Mancha)



  Profil  Quote  Link auf diesen Beitrag Link
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 978
Aus: Thüringen,Erfurter Raum
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.30, eingetragen 2019-05-05


Ja, piko ist über 64bit, aber ich würde einfach die Summe aufteilen. Jedesmal , wenn z.Bsp. 384400000000000000 überschritten wird, wird ein anderer Zähler erhöht und die Summe um 384400000000000000 zurückgesetzt. Der 2. Zähler ist dann bei 1000 Schluß. Pmax sollte sich bei 100 Mrd aufhalten.
Gesamtzeit ca. 20min,kein Tag.  RAM <10MB

Soll ichs mal durchrechnen ?


-----------------
Pech in der Liebe , Glück im Verlieren !!!



  Profil  Quote  Link auf diesen Beitrag Link
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 3177
Aus: Harz
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.31, eingetragen 2019-05-05


genau, so dachte ich mir das auch. gerne - leg mal was vor dann können wir vergleichen. Wird bei mir eh etwas dauern ggg


-----------------
~ to fight! (Don Quijote de la Mancha)



  Profil  Quote  Link auf diesen Beitrag Link
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 978
Aus: Thüringen,Erfurter Raum
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.32, eingetragen 2019-05-05


Der ist gleich fertig....3-4 min noch.

Musste noch Code umstellen und prüfen,obs für Nano und Mikro wieder passt.

Es bleibt bei 3.5 MB RAM.

Also alle Primzahlen addiert, sollen 384'400'000'000'000'000'000 übersteigen....

Fertig:

 Primzahl 97625744471
 771.2679020330834 Sekunden

 771.3s , 12min51s


-----------------
Pech in der Liebe , Glück im Verlieren !!!



  Profil  Quote  Link auf diesen Beitrag Link
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 3177
Aus: Harz
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.33, eingetragen 2019-05-06


Auch von mir dazu eine - ggf. letzte - Rückmeldung, ich habe jetzt auch die pm reproduzieren können und damit ist, solange man einfach so sieben will, Ende Gelände.

Es hat sehr viel Spaß gemacht, vielen Dank nochmal an Primentus für die Herausforderung und an die anderen Mitstreiter :)

Grüße aus dem Harz
Gerhard/Gonz


-----------------
~ to fight! (Don Quijote de la Mancha)



  Profil  Quote  Link auf diesen Beitrag Link
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 978
Aus: Thüringen,Erfurter Raum
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.34, eingetragen 2019-05-06


Also keine Bestätigung für Piko vorhanden ?


-----------------
Pech in der Liebe , Glück im Verlieren !!!



  Profil  Quote  Link auf diesen Beitrag Link
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 3177
Aus: Harz
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.35, eingetragen 2019-05-06


Doch - es hat meinen Rechner etwa vier Stunden gekostet :)
Deshalb meinte ich ja - habe fertig :)


-----------------
~ to fight! (Don Quijote de la Mancha)



  Profil  Quote  Link auf diesen Beitrag Link
Primentus
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 18.02.2016
Mitteilungen: 987
Aus: Deutschland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.36, vom Themenstarter, eingetragen 2019-05-06


Hallo gonz,

sehr gerne - freut mich, dass ich Dir und den anderen Rätselteilnehmern so viel Freude mit dieser Aufgabe bereiten konnte. smile

LG Primentus



  Profil  Quote  Link auf diesen Beitrag Link
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 744
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.37, eingetragen 2019-05-06


Bitte habt noch Geduld. Ich optimiere viel in alle Richtungen ohne Sieb.
( also Test 4 unter NextPrime-Benchmark )
Problem ist nur, dass NextPrime-Abkürzung für so "kleine Zahlen"
mehr Pseudoprime-Zahlen beinhaltet, als ich dachte.
Solange ich nicht schneller als Norman bin, melde ich mich natürlich nicht :-)

Vorteil darin: es gibt keine Obergrenze für Stellen (GMP könnte 100 Stellen...)
und für RAM (da nur Nachfolger gesucht)
...

[Die Antwort wurde nach Beitrag No.35 begonnen.]



  Profil  Quote  Link auf diesen Beitrag Link
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 744
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.38, eingetragen 2019-05-06


Ich lese gerade, dass Pari/GP bereits einen forprime-Befehl hat!
Da ist NextPrime also schon optimiert enthalten (vermutlich viele bereits abgespeichert)
Pari/GP
a(n) = my(s=0);forprime(p=1, 384400000000, s += p;if(s>=n,pe=p;break));s;
a(384400000000000000000\2)
Pari/GP Ergebnisse i7
384400000000\2        Prime=    2332507 sum=         192201870065 su2=         384403740130 in 0.059 s mm
384400000000000\2     Prime=   82519663 sum=      192200026731980 su2=      384400053463960 in 0.831 s µm
384400000000000000\2  Prime= 2858829823 sum=   192200002421545100 su2=   384400004843090200 in 24.34 s nm
384400000000000000000 Prime=97625744471 sum=192200000079639940234 su2=384400000159279880468 in 744.0 s pm
Pari/GP Ergebnisse i9
384400000000\2          Prime=    2332507 sum=         192201870065 su2=         384403740130 in 0.031 s
384400000000000\2       Prime=   82519663 sum=      192200026731980 su2=      384400053463960 in 0.703 s
384400000000000000\2    Prime= 2858829823 sum=   192200002421545100 su2=   384400004843090200 in 20.79 s
384400000000000000000\2 Prime=97625744471 sum=192200000079639940234 su2=384400000159279880468 in 663.47 s

Aber immer noch alles mit nur 1 Kern...
Wir sind noch nicht fertig!



  Profil  Quote  Link auf diesen Beitrag Link
Bernhard
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 01.10.2005
Mitteilungen: 6135
Aus: Merzhausen, Deutschland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.39, eingetragen 2019-05-06


Hallo Primentus!

Ich habe zwar - aus Zeitgründen - nicht aktiv mitgemacht, aber trotztem meine Freude an diesem Rätsel gehabt. Vielen Dank erstmal!

Du fragst:
2019-05-04 15:04 - Primentus in Beitrag No. 20 schreibt:
In diesem Fall verringert sich die von den Halbkreisen zu überbrückende Distanz von 384400 km noch um den Erdradius und den Mondradius. Folglich geht es also um die Entfernung 384400 km - 6378 km - 1738 km = 376284000 km. Dies führt dann entsprechend zu einem geringeren Primzahlradius als Lösung. Ich habe diese Lösung ebenfalls gelten lassen, da sie mir fast richtiger erscheint als meine "Musterlösung".

Wie seht Ihr es? Ist es nicht so, dass der Abstand zweier Himmelskörper nicht als der Abstand deren beider Mittelpunkte zu verstehen ist? Demzufolge müsste man wirklich Erdradius und Mondradius vorher abziehen!

Im Allgemeinen würde ich bei astronomischen Berechnungen den Abstand der beiden Schwerpunkte nehmen, die decken sich ja meistens mit den Mittelpunkten.
Aber aus Deinem Bild, das Du oben in der Aufgebe hineingesetzt hast, geht eindeutig hervor, daß es sich um eine Reise von Oberfläche zu Oberfläche der beiden Himmelskörper handelt:
.
Ich kann deshalb nicht nachvollziehen, wieso Du eine andere Lösung als diese überhaupt - und dann auch noch vorrangig! - in Betracht gezogen hast.

Viele Grüße, Bernhard


[Die Antwort wurde nach Beitrag No.37 begonnen.]


-----------------
"Wichtig ist, daß man nie aufhört zu fragen"
"Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuches, sie zu erwerben"
Albert Einstein



  Profil  Quote  Link auf diesen Beitrag Link
Dies ist eine Knobelaufgabe!
Der Themensteller hat bestimmt, dass Du Deine Lösung nicht direkt im Forum posten darfst.
Sende stattdessen Deine Lösung als private Nachricht an den Themensteller. Benutze dazu den Link 'Privat', den Du unter seinem Beitrag findest.
Der Themensteller wird zu gegebener Zeit über eingesandte (richtige) Lösungen informieren
und nach Ablauf einer (von ihm) festgelegten Zeit alle Lösungen veröffentlichen.
-->> Fortsetzung auf der nächsten Seite -->>
Seite 1Gehe zur Seite: 1 | 2 | 3  
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2019 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]