Primzalfilterung aus n di



  • Hallo,

    Ich habe ein Laufzeitproblem mit Filterung von "Primzahlen" in einem mehrdimensionalem Array welches ich optimieren möchte.

    Es ist gegeben ein array mit Zufallszahlen, dieses kann mehrdimensional sein, z.B. eine Dimension 2^2. Array[][][][](2^2)
    Meist ist es jedoch ein 1024 dimensionalses array.
    Die Zuffalszahlen liegen im Bereich von x^20, somit habe ich die möglichen Primzahlen vorab vorberechnen und deponieren können.

    Zum Problem.
    Alle Primzahlen im Array müssen auf -1 gesetzt werden, jedoch nicht im n+1 Array.
    Dort sollen die Primzahlen nicht auf -1 gesetz werden wenn sie im n-1 Array schon auf -1 gesetzt worden sind.
    Dann sollen nur Zahlen auf -1 gesetzt werden wenn Sie Prim+1 entsprechen.
    Dies gilt dann auch für die nachfolgenden Arrays. Immer mit Prim+1+arrayCount.

    Beim Array mit Dimensionen von x^4 komme ich schon in Laufzeitprobleme, habe jedoch ein 2^10 Array zu lösen.
    Zur Zeit durchlaufe ich jede einzelne Dimension des Arrays zum Überprüfen. => Extreme Laufzeit.

    Hat jemand eine Idee wie ich das effektiver gestalten könnte?



  • Dieser Thread wurde von Moderator/in Arcoth aus dem Forum Themen rund um die IT in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Mir ist leider nicht klar, was du tun möchtest und wie du es bisher tust. Was ist n? Hier wäre Pseudocode oder vielleicht sogar dein richtiger Code hilfreich. Des Weiteren halte ich ein 1024-dimensionales Array schlicht für Wahnsinn. Wie schreibst du das überhaupt?


  • Mod

    Eventuell helfen die Hinweise auf dieser Seite ein wenig weiter:
    http://www-i1.informatik.rwth-aachen.de/~algorithmus/algo25.php



  • bitte was? schrieb:

    Des Weiteren halte ich ein 1024-dimensionales Array schlicht für Wahnsinn. Wie schreibst du das überhaupt?

    paßt schon ...

    { echo -n char a; seq 1024 | while read i; do echo -n [1]; done; echo \;; echo int main\(void\)\{\}; } > blatmp_.c && gcc blatmp_.c
    

    BTW die 1 besser nicht durch eine 2 ersetzen 🙄


Anmelden zum Antworten