Lassen Sie uns eine berühmte Übung machen, und dies könnte als Interviewfrage auftauchen.
Wir werden versuchen, Fibonacci-Zahlen zu implementieren und Fibonacci-Zahlen sind so.
Die erste Zahl ist null, dann ist die zweite Zahl eins, sie beginnen immer mit null eins, dann passiert
das.
Wir addieren Null mit Eins, um der nächsten Zahl gleichzukommen.
Wir addieren eins mit eins, um der nächsten Zahl gleichzukommen, wir addieren eins zu zwei, um die nächste Zahl zwei zu erhalten, drei, um die
nächste Zahl fünf hinzuzufügen, acht, um die nächste Zahl zu addieren.
Und so weiter und so fort.
Wie Sie sehen, wächst dies exponentiell.
Nun, es wächst wirklich hoch, wirklich schnell.
Und diese Art der Nummerierung kommt in der Natur tatsächlich häufig vor, ist aber auch ein interessantes
Problem, da diese Nummern, obwohl am Anfang, sehr, sehr langsam wachsen.
Sie werden größer und größer und größer, und es wird ein Problem, das die Ressourcen wirklich in Anspruch nehmen kann.
Das ist es, was ich tun wollte.
Wir erstellen eine Funktion.
FIB, das eine Nummer braucht.
Und hier wird diese Zahl die Indexzahl des Fibonacci sein.
Wenn es zum Beispiel die 20. Nummer war, sollte es diese haben.
Also, wenn ich wollte, sagen wir hier fib 20.
In diesem Fall möchte ich, dass Sie alle diese Nummern zurückgeben.
Verwenden von Generatoren, also einer nach dem anderen, bis wir an diesen Ort gelangen.
Nun gibt es zwei Möglichkeiten, dies mit der Liste zu tun, oder wir können es mit einem Generator tun.
Und Sie werden feststellen, dass dies mit einem Generator viel einfacher ist als mit einer Liste, da
Ihnen mit einer Liste schließlich die Ressourcen ausgehen.
Ich möchte, dass Sie hier die Zahlen, die Sie hier sehen, bis 20 ausgeben.
Und wenn Sie möchten, können Sie diese Zahl weiter erhöhen und sehen, was passiert.
Und als Bonus können Sie dies auch mit einer Liste versuchen.
So wird es auch in einer riesigen Liste angezeigt.
Unterbrechen Sie das Video, wenn Sie möchten, hier.
Ansonsten bleibe ich bei der Antwort.
Zuerst wollen wir sagen, dass A gleich Null und B gleich Eins ist, also werden A und B
der Anfang der Zahlen sein.
Hier drin werden wir den Entfernungsgenerator benutzen.
Zu Lupe.
So oft werden wir die Funktion bereitstellen.
Nun, hier drin, zuerst möchte ich jetzt oder zwei sein, was auch immer B war, was eins ist, und B, was
auch immer die nächste Nummer ist.
Erinnern Sie sich an die Rolle mit Fibonacci?
Wir addieren die ersten beiden Zahlen, um die dritte Zahl zu erhalten.
Wir haben also A B, um die nächste Zahl zu erhalten, dann A, B, um die nächste Zahl zu erhalten, und dann ein B, um die nächste Zahl zu erhalten.
Das erste, was ich tun möchte, ist, tatsächlich nachzugeben und zu sagen, hey, gib mir einfach was auch immer und dann pausiere die Funktion
bis zum nächsten Teil.
Danach, nachdem die for-Schleife zum nächsten Teil übergegangen ist, werde ich sagen, dass ich A zwei gleich B möchte.
Und ich möchte, dass B gleich A plus B ist.
Mal sehen, ob das Sinn macht, ich sage, hey, gib eine von dieser Liste zurück oder gib
sie zurück, damit es zuerst Null ist, dann möchte ich, dass du jetzt gleich eins machst, weil wir hinüberziehen und dann ich
möchte, dass B gleich eins ist, weil aus A eins und dann das vorherige geworden ist.
Aus B wird also zwei.
Wenn wir hier rüberschauen, deshalb wollen wir hier A und B haben und dann wollen wir nur so eins
überziehen.
B sollte also immer noch eins sein.
Während wir hier vielleicht tun möchten, möchten wir a eigentlich nicht ändern.
Bis wir A plus B schaffen können.
Wie können wir dies tun?
Nun, wir können einfach sagen.
Nehmen wir an, eine temporäre Variable und diese Temperatur wird an dem festhalten, was a war, als wir hier ankommen,
was Null ist, und dann ändern wir A auf Eins und dann wird B anstelle von A plus sein.
B wird temp sein, was null ist.
Außerdem, was auch immer B ursprünglich war, von dem ich weiß, dass es verwirrend werden kann, möchten Sie vielleicht hier eine
Pause machen oder vielleicht drucken und genau sehen, was passiert, aber hoffentlich funktioniert unsere Funktion jetzt.
Wenn ich jetzt so etwas wie vier X in Fit mache und es gebe, sagen wir hundert.
Und drucken wir die Antwort einfach aus.
Also drucken.
X und ich führen das durch.
In Ordnung, sehen Sie sich das an, ich bekomme alle meine Fibonacci-Zahlen, lass uns 20 machen, wie wir im Beispiel gesehen haben, wenn ich
auf Ausführen klicke.
Ich bekomme vier eins acht eins.
Also bin ich 19, denn denken Sie daran, unsere Zählung beginnt bei Null, also können wir hier technisch gesehen, wenn wir wollen,
21 hier machen, klicken, laufen und wir sollten sechs, sieben, sechs, fünf bekommen, was wir hier bekommen.
Sehr, sehr cool, aber man sieht, wie die Zahl dramatisch ansteigt.
Haben wir uns jetzt auf tausend erhöht, wenn wir das in einer Liste machen würden, würde es ungefähr so aussehen.
Kopieren wir hier.
Mit einer Liste anpassen würde jetzt bedeuten, dass wir hier eine Liste hinzufügen müssen.
Und anstatt nachzugeben, wird das Ergebnis angehängt.
Und wir werden anhängen, was auch immer der a-Wert ist, der der Anfangswert ist.
Und dann werden wir das Gleiche tun, was wir zuvor getan haben, also statt ILT jetzt
einfach an diese Liste anhängen und am Ende einfach zurückkehren.
Das Listenergebnis jetzt, wenn ich dies zurückgebe, sagen wir, fib to und gebe ihm einhundert und ich auf Ausführen klicke, können wir
das Original mit dem Generator auskommentieren.
Nun, wir sollten das wahrscheinlich ausdrucken, oder?
Lassen Sie uns also drucken.
Und klicken Sie auf Ausführen.
Okay, das ist eine riesige Liste.
Nun, wenn wir hier tausend machen würden.
Sie sehen, es dauert ziemlich lange.
Was ist, wenn wir 10000 tun?
Alles klar, dauert definitiv etwas, und Sie können hier sehen, wie hart das funktioniert.
Weißt du was?
Ich werde damit aufhören.
Und gehen Sie zurück zu unserem Generator.
Los und lass uns hier zehntausend machen, mal sehen, wie zehntausend mit einem Generator aussehen.
Nun, es arbeitet immer noch hart, aber ich behalte nichts davon im Gedächtnis.
Wir nehmen es nacheinander und ich kann in unserem Fall darauf reagieren, indem ich es einfach einzeln ausdrucke.
Das ist eine gängige Frage in Vorstellungsgesprächen, eigentlich ein bisschen unnötig verwirrend, finde ich.
Aber es zeigt die Kraft von Generatoren.
Möglicherweise müssen Sie sich dieses Video ein paar Mal ansehen, aber hoffentlich fühlen Sie sich jetzt ein wenig
damit vertraut, Bereiche zu verwenden und wie wir die Leistung mit Generatoren verbessern können.
Wir sehen uns im nächsten.
Tschüss.