Primzahl finden


  • Mod

    @SeppJ sagte in Primzahl finden:

    Ich biete 7.

    😀

    Nur um das klarzustellen, Du kommst auch mit relativ grossen Inputs klar (e.g. 1 Million) und schreibst nur eine Zeile nach stdout?



  • @Columbo sagte in Primzahl finden:

    Was ist die kleinste Levenshtein Distanz

    Ich weiß nicht mal, was das ist 😄


  • Mod

    Nvm, ich komme auch auf 7, war nur eine De Morgansche Umstellung meiner vorigen Loesung.

    @Belli sagte in Primzahl finden:

    @Columbo sagte in Primzahl finden:

    Was ist die kleinste Levenshtein Distanz

    Ich weiß nicht mal, was das ist 😄

    Schlicht gesagt, wie wenig Buchstaben man einfuegen/loeschen/aendern muss.


  • Mod

    @Columbo sagte in Primzahl finden:

    @SeppJ sagte in Primzahl finden:

    Ich biete 7.

    😀

    Nur um das klarzustellen, Du kommst auch mit relativ grossen Inputs klar (e.g. 1 Million) und schreibst nur eine Zeile nach stdout?

    Ähh, da ich keine Ahnung habe, wieso du diese Frage stellst, nehme ich an, dass wir gänzlich unterschiedliche Ideen hatten. Ich sehe jedenfalls keinen Grund, wieso meine Lösung von der Größe des Inputs abhängen sollte (in einen int muss er natürlich passen). Stichprobenartig

    ./a.out
     Geben Sie eine Zahl ein. 1000000
    1000000 ist keine Primzahl.
    
    ./a.out
     Geben Sie eine Zahl ein. 1000003
    1000003 ist eine Primzahl.
    

    Spoiler. Bitte wirklich nur anklicken, wenn man sich bewusst ist, dass man sich damit das Spiel komplett verdirbt.

    Da meine 7 ja kleiner ist als deine 9, könnte ich mir deine 9 angucken, ohne mir den Ratespaß zu verderben. Wenn du sie also zeigen möchtest, kann ich nachvollziehen, worauf du mit der Frage abzielen möchtest.

    PS: Ich bin aber gerade mal 'ne Stunde oder mehr weg, also nicht wundern, falls ich nicht antworte


  • Mod

    @SeppJ Wie gesagt, ich war schon auf die 7 gekommen, es war nur eine De Morgansche Umstellung noetig. Die Loesungen sind fast identisch (spoiler). Meine vorige Loesung ist hier.

    Ich bin nicht sicher, ob es besser geht. Ich hatte ueberlegt, die Bloecke anders zu umgrenzen, aber dann wird evt., die Zeile N mal gedruckt.

    Edit: Warum ich das mit der Domaene gefragt hatte? Es gibt eine Loesung mit Distanz 5 (edit: dachte es waere 4) die aber nur bis in zweistellige Zahlen funktioniert: https://ideone.com/5eN63j
    Es ist mathematisch interessant die false negatives zu bestimmen. Ich hatte aber schon geprueft, dass e.g. 101 false negative ist.


  • Mod

    Falls du meine 7 noch nicht angeguckt hast: Es ist die gleiche Idee wie deine Lösung. Auf den kleinen Unterschied zwischen unseren Lösungen wäre ich nie gekommen. Hier war ich im Vorteil, weil ich nur einfache, kurze Grundrechenarten aus der Grundschule beherrsche und auf deine kompliziertere Rechenoperation gar nicht gekommen bin 🙂



  • Och mist, und ich habe versucht, die Klammern richtig zu setzen. Und habe dann überlegt, ob man die Operation "ganze Zeile verschieben" nicht auch als 1 Operation zählen könnte. Versemmelt aber dann die L-Distanz.


  • Mod

    @wob sagte in Primzahl finden:

    Och mist, und ich habe versucht, die Klammern richtig zu setzen. Und habe dann überlegt, ob man die Operation "ganze Zeile verschieben" nicht auch als 1 Operation zählen könnte. Versemmelt aber dann die L-Distanz.

    Wenn jemandem eine kurze Methode einfällt, aus Zeile 15 heraus das Programm zu beenden, könnte man auch mit der Klammerumsetzung was mit fein geringer Distanz finden. return; ist halt alleine schon 7 Zeichen und viel zu lang. Ich hatte anfangs auch diese Methode und ein 1/0; versucht, aber das funktioniert nicht.


  • Mod

    @SeppJ sagte in Primzahl finden:

    @wob sagte in Primzahl finden:

    Och mist, und ich habe versucht, die Klammern richtig zu setzen. Und habe dann überlegt, ob man die Operation "ganze Zeile verschieben" nicht auch als 1 Operation zählen könnte. Versemmelt aber dann die L-Distanz.

    Wenn jemandem eine kurze Methode einfällt, aus Zeile 15 heraus das Programm zu beenden, könnte man auch mit der Klammerumsetzung was mit fein geringer Distanz finden. return; ist halt alleine schon 7 Zeichen und viel zu lang. Ich hatte anfangs auch diese Methode und ein 1/0; versucht, aber das funktioniert nicht.

    Das kann sowieso nichts werden, weil doch das else ebenfalls weg muss? Das wuerde nicht einmal mit dem while {} then {} else {} proposal funktionieren (das ich gerade auch nicht mehr finde und das nie angenommen wurde).


  • Mod

    @Columbo sagte in Primzahl finden:

    @SeppJ sagte in Primzahl finden:

    @wob sagte in Primzahl finden:

    Och mist, und ich habe versucht, die Klammern richtig zu setzen. Und habe dann überlegt, ob man die Operation "ganze Zeile verschieben" nicht auch als 1 Operation zählen könnte. Versemmelt aber dann die L-Distanz.

    Wenn jemandem eine kurze Methode einfällt, aus Zeile 15 heraus das Programm zu beenden, könnte man auch mit der Klammerumsetzung was mit fein geringer Distanz finden. return; ist halt alleine schon 7 Zeichen und viel zu lang. Ich hatte anfangs auch diese Methode und ein 1/0; versucht, aber das funktioniert nicht.

    Das kann sowieso nichts werden, weil doch das else ebenfalls weg muss? Das wuerde nicht einmal mit dem while {} then {} else {} proposal funktionieren (das ich gerade auch nicht mehr finde und das nie angenommen wurde).

    4 für das else, 1 für das <=, 2 für die Klammern. Sind wir schon bei 7 was der derzeitige Rekord ist. Aber zu der Zeit war der Rekord noch bei 9 und ich hatte noch Hoffnung, irgendwie clever mit wenigen Zeichen aus der Klammer auszusteigen, und das else statt zu überschreiben irgendwie umzuschreiben.

    Aber ja, die Methode auf der wir beide gelandet sind, ist natürlich vielversprechender, da sie clever den Mangel bereinigt, dass das Ergebnis im Original verworfen wurde. Wenn irgendwo eine 6 liegt, dann wahrscheinlich in der Richtung.



  • Ich komm' auch nur auf 7.
    Ich kann maximal noch eine alternative 7 Lösung anbieten: https://ideone.com/iVj9S9
    Ist aber fast das selbe.



  • Bin ja doof. 6: https://ideone.com/6BOlOk
    Ich hoffe ich hab da nix übersehen und micht nicht verzählt.



  • Haha. Da wurde ja wieder was losgetreten 😝.
    Aber nix für ungut, ich mach ja oft genug auch selbst mit 😁.


  • Mod

    @hustbaer sagte in Primzahl finden:

    Bin ja doof. 6: https://ideone.com/6BOlOk
    Ich hoffe ich hab da nix übersehen und micht nicht verzählt.

    Sehr nice! 👍👍


  • Mod

    @hustbaer sagte in Primzahl finden:

    Bin ja doof. 6: https://ideone.com/6BOlOk
    Ich hoffe ich hab da nix übersehen und micht nicht verzählt.

    Ich glaub wir sind hier alle doof weil man von fast jeder Loesung eins abziehen kann: https://ideone.com/0d80fB
    🤦♂



  • Ich habe mich früher öfter mal mehr mit dem Golfen in Perl beschäftigt, aber bin schon seit einiger Zeit in die "lesbar ist besser als kurz"-Falle getappt 😢 und komme da nicht wieder raus.


  • Mod

    Hat schon jemand die 5er gezeigt, die alle Varianten vereinigt?
    https://ideone.com/e2TgRM
    edit: Ja, das ist ja die von Columbo.


Anmelden zum Antworten