mirror of
https://github.com/Fare-spec/cours.git
synced 2025-12-08 03:00:37 +00:00
Auto urgent commit.
This commit is contained in:
13
fibonacci/code1.py
Normal file
13
fibonacci/code1.py
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import numpy as np
|
||||||
|
def fibobo(n):
|
||||||
|
if n<= 1:
|
||||||
|
return n
|
||||||
|
return fibobo(n-1) + fibobo(n-2)
|
||||||
|
|
||||||
|
|
||||||
|
print(fibobo(30))
|
||||||
|
|
||||||
|
def fibibi(n):
|
||||||
|
fibi = np.array([[1,1],[1,0]])
|
||||||
|
return np.linalg.matrix_power(fibi,n)[0][-1]
|
||||||
|
print(fibibi(100))
|
||||||
62
fibonacci/complex.py
Normal file
62
fibonacci/complex.py
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
import numpy as np
|
||||||
|
import time
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
import math
|
||||||
|
|
||||||
|
# Définir les fonctions
|
||||||
|
def fibobo(n):
|
||||||
|
if n <= 1:
|
||||||
|
return n
|
||||||
|
return fibobo(n - 1) + fibobo(n - 2)
|
||||||
|
|
||||||
|
def fibibi(n):
|
||||||
|
fibi = np.array([[1, 1], [1, 0]])
|
||||||
|
return np.linalg.matrix_power(fibi, n)[0][-1]
|
||||||
|
|
||||||
|
# Benchmark des temps d'exécution
|
||||||
|
n_values_recursive = range(1, 35, 1) # Plage raisonnable pour fibobo (approche récursive)
|
||||||
|
n_values_matrix = range(1, 50, 1) # Limiter n pour éviter les dépassements avec 2^n
|
||||||
|
|
||||||
|
# Temps pour fibobo
|
||||||
|
times_recursive = []
|
||||||
|
for n in n_values_recursive:
|
||||||
|
start_time = time.time()
|
||||||
|
fibobo(n)
|
||||||
|
times_recursive.append(time.time() - start_time)
|
||||||
|
|
||||||
|
# Temps pour fibibi
|
||||||
|
times_matrix = []
|
||||||
|
for n in n_values_matrix:
|
||||||
|
start_time = time.time()
|
||||||
|
fibibi(n)
|
||||||
|
times_matrix.append(time.time() - start_time)
|
||||||
|
|
||||||
|
# Calculer log(n) et 2^n pour comparaison
|
||||||
|
log_n = [math.log(n) for n in n_values_matrix]
|
||||||
|
exp_2_n = [2**n for n in n_values_matrix]
|
||||||
|
|
||||||
|
# Graphique
|
||||||
|
plt.figure(figsize=(12, 8))
|
||||||
|
|
||||||
|
# Graphe des temps pour fibobo
|
||||||
|
plt.plot(n_values_recursive, times_recursive, label="fibobo (récursif)", marker='o')
|
||||||
|
|
||||||
|
# Graphe des temps pour fibibi
|
||||||
|
plt.plot(n_values_matrix, times_matrix, label="fibibi (matriciel)", marker='s')
|
||||||
|
|
||||||
|
# Ajouter log(n) pour comparaison simple
|
||||||
|
plt.plot(n_values_matrix, log_n, label="log(n)", linestyle="--")
|
||||||
|
|
||||||
|
# Ajouter 2^n pour comparaison simple
|
||||||
|
plt.plot(n_values_matrix, exp_2_n, label="2^n", linestyle=":")
|
||||||
|
|
||||||
|
# Ajuster l'échelle de l'axe y pour éviter les dépassements
|
||||||
|
plt.yscale('log') # Échelle logarithmique pour mieux visualiser les variations
|
||||||
|
plt.ylim(1e-6, 1e10) # Limiter les valeurs extrêmes
|
||||||
|
|
||||||
|
plt.title("Comparaison des performances avec log(n) et 2^n")
|
||||||
|
plt.xlabel("Valeur de n")
|
||||||
|
plt.ylabel("Temps d'exécution ou croissance (échelle logarithmique)")
|
||||||
|
plt.legend(loc="upper left")
|
||||||
|
plt.grid()
|
||||||
|
plt.show()
|
||||||
7
fibonacci/fibobo/Cargo.lock
generated
Normal file
7
fibonacci/fibobo/Cargo.lock
generated
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 4
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "fibobo"
|
||||||
|
version = "0.1.0"
|
||||||
6
fibonacci/fibobo/Cargo.toml
Normal file
6
fibonacci/fibobo/Cargo.toml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
[package]
|
||||||
|
name = "fibobo"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
12
fibonacci/fibobo/src/main.rs
Normal file
12
fibonacci/fibobo/src/main.rs
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
fn main() {
|
||||||
|
println!("Hello, world!");
|
||||||
|
let f = fibobo(30);
|
||||||
|
println!("{f}");
|
||||||
|
}
|
||||||
|
|
||||||
|
fn fibobo(n: u64) -> u64 {
|
||||||
|
if n <= 1 {
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
return fibobo(n - 1) + fibobo(n - 2);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user