• Zuhause
  • Artikel
  • Faktor-Algorithmus: Eine iterative Lösung für Anfänger
Veröffentlicht am 02-03-2019

Faktor-Algorithmus: Eine iterative Lösung für Anfänger

Foto von Lee Campbell auf Unsplash

Während einer praktischen Remote-Whiteboard-Sitzung diese Woche beim Codieren des Bootcamps wurde ich gebeten, einen faktoriellen Algorithmus iterativ zu implementieren. Als ich vor anderen eine Lösung erarbeiten und präsentieren musste, fühlte ich mich verletzlich (Hallo Imposter-Syndrom!)…. ABER, ich habe überlebt! In meinem ersten Artikel teile ich meine Problemlösungsmethode mit der Eingabeaufforderung, einer möglichen Lösung in Python und ihrer Big O-Notation.

Das Problem verstehen

Fakultät - Die Fakultät einer Zahl n (ausgedrückt als n!) Ist das Ergebnis der Multiplikation von n mit jeder ganzen Zahl von n bis 1. Beispiel 4 = 4 × 3 × 2 × 1 = 24.

Algorithmus - Die Schritte oder Anweisungen, die zur Lösung eines bestimmten Problems erforderlich sind.

Iterativ - Verwendet eine Schleife, um einen Prozess zu wiederholen, bis eine Bedingung erfüllt ist.

Eingabe / Ausgabe - Bei einer positiven Zahl n wird das Ergebnis von n zurückgegeben!

Den Prozess identifizieren

Um die Fakultät von n aufzulösen, muss ich Folgendes tun:

  • Definieren Sie eine Funktion, die eine Zahl n enthält.
  • Definieren Sie eine Variable namens result, um das faktorielle Ergebnis zu speichern. Initialisieren Sie es mit dem Wert 1.
  • Verwenden Sie eine Schleife, um von n nach 2 zu iterieren und das Ergebnis jedes Mal mit n zu multiplizieren und im Ergebnis zu speichern.
  • Ergebnis zurückgeben

Beim Durchlaufen des Schleifenprozesses für Fakultät von 4 sollten sich die Werte von i (Schleifenzähler), n und das Ergebnis nach jeder Iteration wie folgt ändern:

                   # Fakultät (4)
                   # -----------------------
                   # i n Ergebnis
                   # -----------------------
                   # 1 4 4
                   # 2 3 12
                   # 3 2 24

Zuversichtlich, dass ich das richtige Ergebnis bekomme, gehe ich zum Code über.

Lösung codieren

Woo hoo! Hier ist mein allererster Code gist:

Bonus

Nachdem ich meine Codelösung vorgestellt hatte, wurde ich nach der Big-O-Notation für diese Funktion gefragt… Performance-Komplexität?!? Sag was?!?

Foto von Luz Fuertes auf Unsplash

Meine faktorielle Lösung verwendet eine Schleife, um eine Berechnung für jede Zahl in absteigender Reihenfolge von n auf 2 durchzuführen. Bei der Fakultät von 4 durchlief meine Schleife 3 Iterationen. Wenn n 10 ist, wird die Schleife 9-mal ausgeführt. Der Eingabeparameter n entspricht proportional der Anzahl, wie oft die Schleife ausgeführt werden muss. Die Big O-Notation ist also O (n). Es ist linear in der Natur. Weitere Informationen zu Big O.

Wie hätten Sie diese Aufforderung in Angriff genommen? Rekursion?

Siehe auch

Was bringt ein dezentrales Werbenetzwerk?"Um zu überleben, muss ein Softwareprojekt die Qualität für Geld und Zeit opfern."GitHub Student Developer Pack entmystifiziertMeine Top 10 Apps für Organisatoren