C ++ Pascals Dreieck

8

Ich suche nach einer Erklärung dafür, wie die rekursive Version des Pascal-Dreiecks funktioniert

Das Folgende ist die rekursive Rückleitung für das Pascal-Dreieck.

%Vor%

Ich verstehe, wie der Algorithmus funktioniert Was ich mich wundere ist, wie die Rekursion die Arbeit macht.

    
starcorn 19.11.2009, 15:09
quelle

8 Antworten

32

Ihr Algorithmus enthält einige unnötige Prädikate für die Basisfälle. Es kann einfacher wie folgt angegeben werden:

%Vor%

Dies setzt natürlich voraus, dass Sie garantieren, dass die an die Funktion übergebenen Argumente nicht negative ganze Zahlen sind; Sie können immer eine Aussage einfügen, wenn Sie eine solche Garantie nicht von außerhalb der Funktion erheben können.

    
pmcs 21.09.2012 18:12
quelle
7

Das Pascal-Dreieck ist im Wesentlichen die Summe der beiden unmittelbar darüber liegenden Werte ....

%Vor%

usw.

  • In diesem Fall werden die 1en erhalten, indem die darüber liegende 1 mit dem Leerzeichen (0)
  • addiert wird
  • Bei Code sind alle 1 in der ersten Spalte (0) oder in der Spalte (col == row)
  • belegt

Für diese beiden Randbedingungen kodieren wir in speziellen Fällen (zur Initialisierung). Der Hauptteil des Codes (der rekursive Teil) ist die eigentliche Logik.

(Die Bedingung 'row == 1' ist nicht notwendig)

    
Fox 19.11.2009 15:15
quelle
4

Siehe die Seite für den Quellcode:

%Vor%

Die Ausgabe wäre

Pascal Dreieck Programm

Geben Sie die Anzahl der Zeilen ein: 11

%Vor%     
quelle
4

Der am besten optimierte Weg ist dieser:

%Vor%

Im Gegensatz zu Fox's Algorithmus verhindert es rekursive Aufrufe von Werten, die einfach aus den Eingabewerten berechnet werden können.

    
Jacobian 20.09.2013 05:46
quelle
2

Das Pascal-Dreieck kann durch Hinzufügen der zwei Einträge über dem aktuellen erhalten werden.

%Vor%

usw., zum Beispiel Spalte 2, Zeile 3 = Spalte 2, Zeile 2 + Spalte 1, Zeile 2, wobei die Fälle wie folgt sind:

%Vor%     
user181548 19.11.2009 15:13
quelle
2

Hier ist der Code von @ kathir-softwareandfinance mit besser lesbaren und aussagekräftigeren Variablennamen

%Vor%     
Abdulrhman.Z 23.07.2013 15:41
quelle
1

So funktioniert die Rekursion

%Vor%

Wenn Sie den Wert oft benötigen und genügend Speicher haben:

%Vor%     
glebm 19.11.2009 15:46
quelle
0

Verwendung eines ternären Ansatzes zur Optimierung; nur 1 Rückführbefehl benötigt.

%Vor%

Siehe Erklärung

    
Jim22150 17.11.2014 06:49
quelle

Tags und Links