Beiträge von BloodyEric

    Hallo,


    nachdem ich mir bereits die letzten Tage etwas den Kopf zerbrochen hab, dachte ich mir, dass vielleicht jemand hier in der Gemeinschaft noch schlauer ist als ich. Ganz kurz zum Thema: Es gilt einen Java-Algorithmus zu entwickeln, der ein mathematisches Problem löst; und das so schnell wie möglich.


    Folgendes Problem wird betrachtet:


    Man nehme eine Zahl a aus den Stellen ab, die folgende Eigenschaft erfüllt: a^a + b^b = ab. In anderen Worten: Die Summe aller Ziffern mit sich selbst potenziert ergibt wieder unsere ursprüngliche Zahl. Folgendes definieren wir außerdem: 0^0 = 0.


    Neben der Zahl 1 gibt es noch die Zahl 3435, die diese Eigenschaften erfüllt sowie noch eine weitere Zahl. Wir brauchen also einen Algorithmus, der per Schleife von 1 anfängt (von mir aus auch 3436) und uns die dritte (und letzte existierende) Zahl, die das erfüllt ausgibt.



    Soviel vorne weg: Ich habe einen Algorithmus, der aber relativ langsam ist (55 Sekunden auf einem zentralen Testserver, auf dem ich den Code auf Geschwindigkeit prüfe). Leute behaupten, das ganze in 4-5 Sekunden hinzukriegen. Da die Zahl im mittleren neunstelligen Bereich liegt, haben wir also milliarden Rechenoperationen - Ziel muss es daher sein, Zahlen, die es aus irgendwelchen Mathematischen Gründen nicht sein können, so schnell wie möglich auszuschließen.


    Sollte jemand zufällig zu viel Zeit haben, würde ich doch sehr darum bitten, sich darüber mal etwas Gedanken zu machen, einen groben Code zu schreiben, die Zahl (die ich euch von mir aus auch nennen kann) zu finden und danach das Ganze auf Geschwindigkeit zu optimieren.


    Wer irgendwas hinkriegt, was auf meiner zentralen Testmaschine in weniger als 10 Sekunden läuft und tatsächlich erstmal alle Zahlen irgendwie ansieht, bekommt...uhm...überleg ich mir dann. ;)



    Benutzt werden darf: Grundrechenarten, Schleifen, break/continue, Bitoperationen, IF-Abfragen. Kein Multithreading/SuperCheat/Weißichwas

    RCs heißen Release-Candidats und es wird millionenfach gesagt, dass sich der Inhalt noch ändern kann. Und da weder du, noch ich, noch irgendwer anders hier im Forum weiß, was für schwerwiegende Bugs dahinter stecken, die ihn dazu zwingen das Feature wieder zu entfernen, gilt immer noch:


    Wenn man keine Ahnung hat, ...einfach mal in sich kehren. Es gibt Sachen, da kannst du dich nicht 15 Minuten hinsetzen, drüber nachdenken und dann ist das ganze gefixt.


    Du stellst hier genauso schwachsinnige Behauptungen auf wie "Kalcor entfernt Büsche weil er keine Lust hat sich Crashlogs anzusehen", also nehme ich mir jetzt einfach mal das Recht raus zu behaupten, dass du auch keine Ahnung hast, wie man den Pause-Probleme beheben kann.

    Ihr seid alle zu süß :D


    Jaja, der böse Kalcor...nie testet er was, alles was er macht ist fürn Arsch und dann nimmt er uns das auch noch weg - und nach Crashlogs will er auch nicht gucken. Ganz böser Schlingel, hätte der doch bloß nie angefangen damit!

    Der Server war voll.


    Außerdem steht es natürlich jedem frei, seinen Server auch schon der Öffentlichkeit zugänglich zu machen - es wird nur nicht empfohlen, weil relativ häufig Server und Client geupdatet werden müssen. Wenn er etwas dagegen hätte, wäre sicherlich die Masterlist nicht seit RC 4 (oder so) offen für 0.3d.

    Es gibt 2 Versionen - eine, die alles in den RAM läd und dafür nix CPU-mäßig verbraucht und eine die nix in den RAM legt und jedes Mal neu berechnet (CPU). Und dann gibts noch ein Mittelding aus beidem, welches aber ETWAS ungenauer ist - so ressourcenlastig ist das alles nicht; zumindest nicht in der heutigen Zeit. ;)

    Die San Andreas Engine ist in verschiedenen Stellen auf nicht so viele FPS ausgelegt, daher kann ich mir auch vorstellen, dass Kye da nen globales Limit eingebaut hat...


    Ganz ehrlich, wem 100 FPS zu wenig sind, der hat nen Problem.