Contest



  • Hallo Leute, folgendes:

    Wer hätte Lust an einem kleinen Wettbewerb mitzumachen?

    Es geht darum innerhalb von zwei Wochen die schnellste (von allen die mitmachen) Implementierung für Primzahlenfindung zu entwerfen.

    Ziele:
    Das Programm soll Primzahlen bis zu einer Obergrenze N (Maximal 10 000/100 000) ausfiltern.

    Kriterien:

    --> Schnelligkeit (Zeitangabe für ungeordnete Ausgabe (falls dies zutrifft) und eine Zeitangabe für die geordnete Ausgabe)

    --> Sicherheit/Zuverlässigkeit (Es sollen/dürfen keine "Nicht-Primzahlen "gefunden"/ausgegeben werden oder Primzahlen ausgelassen werden)

    Hier liegt die Herausforderung den richtigen Kompromiss zwischen Schnelligkeit und Sicherheit zu finden.

    unter anderem ist es auch erlaubt freie Algorhitmen zu implementieren oder zu modifizieren, dies sollte aba fairerweise mit angegeben werden.

    Dann sollte man (eig. nicht möglich aba bei einer maximalzahl sollte es machbar sein) einen Ansatz (dass die Zahlenmenge um die n-te Primzahl einschränkt) oder eine Lösung zu finden die n-te (vom user gewünschte primzahl) zu finden und das in einer praktikablen Zeit (vermutlich auch wieder ein Maximalwert von 10 000 oder 100 000).

    Nicht erlaubt is es aber,über einen index (zb nach erzeugung die n-te Primzahl in einem array[i] zu speichern und und dann im array nach ihr zu suchen) die n-te von 10 000/100 000 zu finden, da der algo dynamisch bleiben sollte und man zb bei Vergößerung der Zahlen ohne index die n-te Zahl finden.

    Es geht hier natürlich nicht in erser Linie erster zu werden sondern kreativ zu sein und seine Werte mit denen der anderen messen zu können.
    Wer will kann den source zu seinem Verfahren ja auch posten so, dass einzelne Verfahren besrprochen werden können.

    Wer hat Lust? 😃



  • Dies gab es doch schon zieg mal. Und es gibt doch hunderte Algorithmen im Inet. Da kann jeder X-belibiege sich den saugen und hat top Ergebnisse. Will deine Idee ja nicht madig machen aber seh da nicht so richtig den sinn drinn, sorry.
    Ich denke mal du willst das ganze in C Lösen (lassen)?
    Interessant wäre vielleicht wie schnell unterschiedliche Programmiersprachen sind obwohl es das bestimmt auch schon gab/gibt.

    Trotzdem viel Erfolg mit deinem Contest 🙂

    MfG schirrmie



  • Naja weiviele auf dem Board haben schon GENAU diese Aufgabe gelöst? Bzw es gibt sicher genug, die konkret diese Aufgabe noch nicht gelöst haben (und sogar die können ja antreten).

    Hmm ja also C/C++ (ich selber progge in C).
    ehm das Ziel ist es nicht mir was lösen zu lassen (ich trete selber an).
    Ich weiss aba ich vertraue halt mal, darauf, dass die meisten ehrlich bleiben.
    Erstens würde es mir persönlich keinen Spaß machen zu schummeln bzw. ein bereits vorhandenes Konzept 1:1 (also einfach Quelltext zu kompilieren und ein vorhandenes Konzept selber zu implementieren) zu übernehmen.
    Ausserdem gibts hier keinen megatollen preis sondern es geht darum seine Ergebnisse vegrleichen und sich messen zu können.

    Ich fänds toll wenn einige Leute mitmachen würden.

    @schirrmi :thx, mfg



  • schirrmie schrieb:

    Dies gab es doch schon zieg mal. Und es gibt doch hunderte Algorithmen im Inet.

    echt? ich dachte immer es gäbe nur einen optimalen algo, das sogenannte 'sieb des <irgendso'n antiker griechischer philosoph>' ?



  • Ja das ist angeblich der effizienteste, hab aber schon einige andere gesehen, daher meine Idee eines Contests, da ich diese Aufgabenstellung sehr interessant finde.

    Das Thema ist deshalb passend weil man seiner Kreativität freien Lauf lassen kann und sich nicht (nur wenn man will) mit schwerverständlichen mathematischen Formeln aussinandersetzen muss.

    Gleichzeitig muss man aba einen Kompromiss zwischen Schnelligkeit und Effizienz finden.





  • naja, ich würde mich zu so'nem server connecten, der alle bis heute bekannten primes gespeichert hat, oder solche files einbinden: http://primes.utm.edu/lists/small/millions/ 😉
    aber das wär' ja schummel, nicht?



  • Obvillian schrieb:

    des war dasda--> http://de.wikipedia.org/wiki/Sieb_des_Eratosthenes

    achso, ja, den meinte ich. war zwar mathematiker aber damals war mathe und philosophie sowieso das selbe...;)



  • ja, connecten etc wär schummeln aba ich finde wenn man andere Verfahren modifizieren kann bzw selbst implementiert (man soll das aber angeben) ist der Bereich des Erlaubten eh sehr weit gegriffen.





  • Ja genau so hatte ich mir das vorgestellt.

    Hmm ja is aba auch schon 5 Jahre her.

    Naja wer Lust hat melden.



  • Die Frage ist immer, was man eigentlich herausfinden will,

    - wie gut der Programmierer optimiert
    - wie gut der Compiler optimiert
    - wie gut der Prozessor abfetzt

    Erster Job ist eigentlich Entwicklers Tagesjob, auch wenn manche das nicht so sehen. Beim ausentwickelten Trivialjobs wie Sieb fegen Assemblerfreaks die Bühne in aller Regel ab.
    Compilertests sind eigentlich nur sinnvoll, wenn das auszuführende Programm möglichst genau definiert und völlig sinnlos ist, um dem Programmierer alle Gelegenheiten, kreativ einzugreifen, zu nehmen.
    Was der Prozessor tut, sollte eigentlich abgekoppelt gesehen werden, geht aber schlecht, weil das Compiler/Prozessor- Gespann bei eng abgesteckten Aufgaben in puncto Zusammenarbeit oft entscheidend ist.

    Man müßte also vorher die Umgebung festlegen, um wirklich vergleichbare Bedingungen zu erhalten. Der Job sollte zudem deutlich komplexer sein.

    Wem macht der Wettbewerb unter diesen Prämissen eigentlich Spaß?

    Nebenzu bemerkt sitze ich gerade an einem Redesign (ROHS läßt grüßen) mit einem 16/32- Biter, 20 MHz, was ich vor etwa 10 Jahren schon mal mit einem 2 MHz 8- Bitter in Assembler so gelöst habe, daß sich der Prozessor nur langweilt und der nunmehr billigere 16- Biter unter C bei den rechenintensiven Abschnitten an der Auslastungsgrenze steht. Ich denke nicht, daß ich schlechter geworden bin, allenfalls im Kundeninteresse fauler. Wurscht is, damals hab' ich über einen Monat gewerkelt, heute nur eineinhalb Wochen.

    Mit dem Erasto geht nix wirklich Vergleichbares her, das ist mein Subsummarium, da bräuchte es Festlegungen aller Art, je nachdem, was man testen mag. Auf welcher Ebene macht so ein Wettbewerb Sinn?



  • Hmmm na dann versuch mal "dynamisch" die n-te Primzahl zu finden. Das sollte komplex genug sein.

    Naja dann einigt man sich einfach auf einen Compiler.

    Ich würde sagen man soll hier herausfinden wer mit dem selben Compiler am besten optimieren kann (also bei der Suche)

    mfg.



  • Jetzt in den Ferien hätt ich auch nix gegen nen kleinen Wettebewerb, aber müssens denn immer Primzahlen sein?



  • wie waers mal mit fibonacci?



  • Naja Primzahlen find ich einfach sehr interessant (bzw. die automatische Berechnung dieser mit Programmen) wusste ned amal, dass es bereits einige Prinzahlencontests hier gab.

    Naja wär ja nur der Anfang, danach kommt halt was anderes.
    Fibbonacci? is doch ein wenig zu einfach oder?



  • naja, es kann sehr gut sein, dass ich mich irre, aber fibonaccis kann man glaub ich auch mit einer expliziten formel berechnen... oder waren das fakultaeten? ich weiss es nicht mehr

    jedenfalls sind fibonaccis keine primzahlen.



  • jup, c.rackwitz, as war die Fibonacci-Folge.

    Greetz, Sworfish



  • Sucht doch mal die Befreundeten Zahlen


Anmelden zum Antworten