Ashanti: Algo durch Caching tunen

Beitrag lesen

Hi Vinzenz

IMHO kann man den Algo nochmals rasant beschleunigen wenn man Zwischenergebnisse cachet.

Die rekursive Funktion müsste überprüfen ob sie schonmal mit der gleichen letzten Zwischensumme und Sackfüllung aufgerufen wurde, falls
nein: Anzahl der Folgelösungen berechnen und merken!
ja:   Anzahl der Folgelösungen übernehmen.

Beispiel:

Muenzen/Saecke: 30/6
...
53:   1 2 2 4 6 15  rec:70  ite:53
54:   1 2 2 3 9 13  rec:72  ite:54
55:   1 2 2 3 8 14  rec:73  ite:55
56:   1 2 2 3 7 15  rec:74  ite:56
57:   1 2 2 2 8 15  rec:76  ite:57
...
72:   1 1 3 4 6 15  rec:96  ite:72
73:   1 1 3 3 9 13  rec:98  ite:73
74:   1 1 3 3 8 14  rec:99  ite:74
75:   1 1 3 3 7 15  rec:100 ite:75
76:   1 1 2 5 10 11  rec:103 ite:76

die Teilsequenzen 1 2 2 3 und 1 1 3 3 haben die gleiche Summe
und die gleichen Endzahl, deswegen folgen immer 3 weitere Teillösungen (54-56 = 73-75).

Auf diese Art und Weise verlagert man effektiv Zeitkomplexität
auf Speicherkomplexität :)

Salam
 Ashanti

0 60

Rechenaufgabe: 500 Euro

Martin Dunst
  • sonstiges
  1. 0
    Vinzenz Mai
    1. 0
      Vinzenz Mai
      1. 0
        Matze
        1. 0
          Vinzenz Mai
          1. 0
            Matze
            1. 0
              Vinzenz Mai
              1. 0
                Matze
                1. 0
                  Vinzenz Mai
                  1. 0
                    Matze
                    1. 1
                      Vinzenz Mai
                      1. 0
                        Matze
                        1. 0
                          Der Martin
                          1. 0
                            Gert
                            1. 0
                              Der Martin
                  2. 0
                    Matze
                    1. 0
                      Rouven
                    2. 0
                      Vinzenz Mai
              2. 0

                Lösung: 500 Euro

                Ashanti
                1. 0
                  Ashanti
                2. 0
                  Vinzenz Mai
                  1. 0
                    Ashanti
                    1. 0
                      Vinzenz Mai
                      1. 0
                        Ashanti
                        1. 0
                          Ashanti
                          1. 0
                            Vinzenz Mai
                            1. 0
                              Ashanti
                              1. 0

                                Anzahl Lösungen=24.813.354 Anzahl Rekursionen=28.258.486

                                Ashanti
                                1. 0
                                  Patrick Andrieu
                                  1. 0
                                    Patrick Andrieu
                                    1. 0

                                      Anzahl Lösungen=6.017.023 Anzahl Iterationen=7.302.334

                                      Vinzenz Mai
                                      1. 0
                                        Ashanti
                                      2. 0

                                        Anzahl Lösungen= 24813353 Anzahl Rekursionen= 28258321

                                        Ashanti
                                        1. 0
                                          Ashanti
                                          1. 0
                                            Ashanti
                                            1. 0

                                              Anzahl Lösungen= 24813353 Anzahl Iterationen 76567748

                                              Vinzenz Mai
                                              1. 0
                                                Ashanti
                                                1. 0
                                                  Ashanti
                                                  1. 0
                                                    Vinzenz Mai
                                                    1. 0
                                                      Ashanti
                                                      1. 0
                                                        Vinzenz Mai
                                                        1. 0
                                                          Ashanti
                                                          1. 0
                                                            Vinzenz Mai
                                                            1. 0
                                                              Ashanti
                                                              1. 0
                                                                Ashanti
                                                                1. 0

                                                                  Algo durch Caching tunen

                                                                  Ashanti
                                                                  1. 0

                                                                    Maximum Münzen=347

                                                                    Ashanti
                                  2. 0
                                    Ashanti
                3. 0
                  Don P
                  1. 0
                    Ashanti
          2. 0
            Sven Rautenberg
            1. 1
              Daniel Thoma
        2. 0
          Cheatah
  2. 0
    Daniel Thoma
    1. 0
      Vinzenz Mai
      1. 0
        Frank (no reg)
    2. 0
      Micha
  3. 0

    Allerliebst ...

    Ashanti
    • menschelei
    1. 0
      Sven Rautenberg
      1. 0
        Ashanti