Python
::
Aufgabe #258
5 Lösungen

Fibonacci-Folge - Berechnung der ersten 100 Zahlen (mit Schleife oder rekursiver Funktion)
Anfänger - Python
von Gnom
- 31.03.2020 um 00:35 Uhr
Berechne die ersten 100 Zahlen der Fibonacci-Folge (0, 1, 1, 2, 3, 5, 8, 13, ... vgl.: Fibonacci-Folge (Wikipedia))
Die Fibonacci-Folge beginnt mit den Zahen 0 und 1. Jede weitere Zahl der Folge wird durch Addition der beiden Vorhergehenden gebildet.
0
1
1 (=0+1)
2 (=1+1)
3 (=1+2)
5 (=2+3)
8 (=3+5)
13 (=5+8)
...
Die Aufgabe lsst sich mit einer relativ einfachen Schleife lsen.
Fortgeschrittene knnen sie auch mit einer rekursiven Funktion lsen.
Viel Erfolg!
Bitte melden Sie sich an um zur Aufgabenbeschreibung eine Frage zu stellen.
Frage stellen
Bitte melden Sie sich an um eine Lösung einzureichen.
Lösung einreichen
Votes: 0 Admin: 0
Lösungen:
#1
1 Kommentar
0x

von Asthos (410 Punkte)
- 03.04.2020 um 16:44 Uhr

Python-Code
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# inspiriert durch Youtube: https://www.youtube.com/watch?v=Qk0zUZW-U_M
fibonacci_cache = {}
def fibonacci(n):
#Eingabeprfung
if type(n) != int:
raise TypeError('n muss eine positive ganze Zahl sein')
if n < 1:
raise ValueError('n muss eine positive ganze Zahl sein')
#Wenn der Wert im Cache ist, dann diesen zurckgeben
if n in fibonacci_cache:
return fibonacci_cache[n]
if n == 1:
wert = 1
elif n == 2:
wert = 1
elif n > 2:
#Rekursiver Aufruf
wert = fibonacci(n-1) + fibonacci(n-2)
fibonacci_cache[n] = wert
return wert
Ausgabe von:
fibonacci(100) = 354224848179261915075
fibonacci(1.2): TypeError: n muss eine positive ganze Zahl sein
fibonacci(-3): ValueError: n muss eine positive ganze Zahl sein
Kommentar ansehen
Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
Admin: 0
#2
0x

von Gisbert5020 (3120 Punkte)
- 03.04.2020 um 20:18 Uhr

Python-Code
a=0
b=1
print(a)
print(b)
for i in range(1,99):
c=a+b
print(c)
a=b
b=c
Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
Admin: 0
#3
0x

von satn1241 (3090 Punkte)
- 06.04.2020 um 22:38 Uhr

Python-Codeende = int(input("Bis wohin mchten Sie die Fibonaccifolge angezeigt bekommen?"))
n_0 = 0
n_1 = 1
n_2 = 1
print(n_0)
print(n_1)
for i in range(0, ende):
print(n_2)
n_0 = n_1
n_1 = n_2
n_2 = n_1 + n_0
Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
Admin: 0
#4
0x

von thunderbird (820 Punkte)
- 27.04.2020 um 11:23 Uhr

Python-Codedef Fibonacci(i):
if i == 0:
return 0
elif i == 1:
return 1
elif i<0:
return Fibonacci(-i)
else:
return (Fibonacci(i-1)+Fibonacci(i-2))
print("Hinweis: Negative Zahlen werden vernachlaessigt")
i = int(input("Bitte geben Sie eine ganze Zahl ein, von welcher die Fibonacci-Folge berechnet werden soll: "))
print(f"Fibonacci-Folge: {Fibonacci(i)}")
Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
Admin: 0
#5
0x

von Kryptonos (180 Punkte)
- 08.11.2020 um 14:32 Uhr

Python-Code
# Rekursive Berechnung der 100. Fibonacci-Zahl
from typing import Dict
memo: Dict[int, int] = {0: 0, 1: 1} #Abbruchbedingung
def fib(n: int) -> int:
if n not in memo:
memo[n] = fib(n-1) + fib(n-2) #Memoisation
return memo[n]
if __name__ == "__main__":
print(fib(100))
Bitte melden Sie sich an um eine Kommentar zu schreiben.