53 Stimmen

Ist in der Fibonacci-Folge fib(0) 0 oder 1?

Ich bearbeite eine Aufgabe in einem Fach, in dem fib(0) als = 1 definiert ist. Aber das kann doch nicht richtig sein? fib(0) ist 0?

Program with fib(0) = 1; spits out fib(4) = 5
Program with fib(0) = 0; spits out fib(3) = 3

Was ist die richtige Definition?

7 Stimmen

Fib 0 = 0 ist richtig. Aber für manche Menschen ist die Erde flach und Fib 0 = 1.

0 Stimmen

Steht dies im Zusammenhang mit dem Projekt euler?

1 Stimmen

In Anbetracht der Tatsache, dass jeder von uns die Wikipedia-Seite ändern kann, würde ich mich an die Definition aus der Encylopedia Britannica halten: britannica.com/wissenschaft/Fibonacci-Zahlen Fib beginnt mit 1, wie von Fibonacci selbst definiert.

7voto

Woody Podgers Punkte 59

Man kann nicht null Kaninchen haben und damit ein Paar erzeugen, und "wie viele Kaninchenpaare kann man in einem Jahr erzeugen, wenn man mit einem Paar beginnt und sich ab dem zweiten Monat monatlich fortpflanzt" war die ursprüngliche Frage an Fibonacci.

0 Stimmen

Bedeutet das, dass fib(0) undefiniert ist? Es wäre schön, darüber Klarheit zu haben.

0 Stimmen

Gut zu wissen... Danke Woody!

0 Stimmen

Ich denke, ein großer Teil davon ist, wie die Frage formuliert ist. Wenn man fragt: "Was ist die erste Fibonacci-Zahl fib(1)?", erhält man den Wert 1. Wie lautet die 2. fib(2), dann erhält man den Wert 1. fib(0) ist 0, aber es ist nicht die erste Fibonacci-Zahl. Das wäre so, als würde man fragen, was die nullte Fibonacci-Zahl ist, was meist irrelevant ist. Wenn man sich das so vorstellt, funktioniert der kombinatorische (rekursive) Algorithmus perfekt. C# Beispiel => int fib(int n){ if (n < 2){ return n; } return fib(n -1) + fib(n-2); }

3voto

William Pursell Punkte 188248

Sie sind beide korrekt. Wenn Sie eine Folge G{n} durch die Rekursion G{1} = 3, G{2} = 5, G{n} = G{ n - 1} + G{ n - 2} dann würden die meisten Leute zustimmen, dass dies eine "Fibonacci-Folge" ist. Der einzige Unterschied sind ein paar Terme an der Spitze, aber die aber die führenden Terme sind meist irrelevant für Fragen über die Folge. Das Herzstück einer Fibonacci Folge ist die Additionsregel, und jede Folge, die diese Regel verwendet, ist eine Fibonacci-Folge. Es ist nur notwendig anzugeben, ob 0 in der Folge enthalten ist, wenn Sie wenn Sie spezifische Fragen zu einem bestimmten Index stellen wollen... alles andere ist nur eine Übersetzung des Indexes und ist so gut wie irrelevant. Das heißt, wenn das Problem lautet "Finde eine geschlossene Lösung für den N-ten Wert in der Wert in der Sequenz", dann wird die Lösung für G das Problem lösen für F mit nur einer trivialen Verschiebung der Lösung. Der schwierige Teil des Problems ist für beide Sequenzen derselbe.

1 Stimmen

Nein. Dies würde nicht als Fibonacci-Folge bezeichnet werden, zumindest nicht ohne ein zusätzliches Adjektiv. Einige Identitäten, die für klassische oder kombinatorische Fibonacci-Zahlen gelten, gelten nicht für den allgemeinen Fall. Und einige Ausgangsbedingungen (2 1 3 4 7.... Lucas Seqkem zum Beispiel) sind unabhängig davon interessant

0voto

phsiao Punkte 1497
fib 0 = 0
fib 1 = 1

Das ist die Definition des Startwerts.

6 Stimmen

Quelle? Oder irgendeine andere Unterstützung für Ihre Behauptung? Nur weil Sie behaupten, dass etwas so ist, ist es noch lange nicht so.

-1voto

Meine Erklärung ist für Programmierer, die ein einfaches Verständnis dieser Reihe und des Nullbegriffs haben wollen

beginnen Sie einfach mit

first term as    f(1) = 1
second term as   f(2) = f(1)+nothing Available = f(1)+0 = 1+0 =1
third term as    f(3) = f(2)+f(1) = 1+1 = 2

Es ist logisch zu glauben, dass negative und Null-Terme das Ergebnis der Fibonacci-Formel sind, die den Goldenen Schnitt verwendet.

Der Goldene Schnitt (GR) hat den Wert 1,618034 und die Formel f(n) = (GR^n - (1-GR)^n))/sqrt(5)

-3voto

cavalier Punkte 49

Die Fibonacci-Reihe beginnt nicht mit 0, sondern mit 1.
Der Versuch, ein mathematisches Konzept als Computerprogramm darzustellen, bringt uns durcheinander. Der Begriff "Fib(0)" ist der Array-Index, der die erste Fibonacci-Zahl enthält, die immer 1 ist. Wir stellen diese Frage, weil wir etwas von dem Programm zurückgeben müssen, wenn jemand 0 als Eingabe eingibt. Diese Eingabe bedeutet im Wesentlichen, dass 0 Fibonacci-Zahlen erzeugt werden sollen. Sie geben also eine Meldung zurück, die besagt: "Keine Fibonacci-Zahlen erzeugt".

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X