Présentation
Numberphile a récemment publié une vidéo sur une fonction récursive intéressante appelée «Fly Straight, Dammit!» qui, une fois tracée, semble chaotique, mais se stabilise instantanément après six cent trente huit itérations.
Script n°1 - suite avec export csv
import mathnmax=1000
#creation de listes vides pour l'écriture dans csv
listen=[0,1]
listeAn=[1,1]
for n in range (2,nmax):
gcd=int(math.gcd(n,listeAn[(n-1)]))
if gcd==1:
An=listeAn[(n-1)]+n+1
else:
An=int(listeAn[(n-1)]/gcd)
print("n=",n,"- An=",An,"- GCD=",gcd)
#remplissage de listen avec les valeurs de n
#remplissage de listeAn avec les valeurs de An
listen.append(n)
listeAn.append(An)
# export tableur
import pandas
df = pandas.DataFrame(data={"valeur de n": listen, "valeur de a(n)": listeAn})
#vous pouvez mettre
# ./donnees.csv
# ./donnees.ods
df.to_csv("./donnees.ods", sep=';',index=False)
Script n°2 - suite avec export csv et (+) graphique python
import math
nmax=1000
#creation de listes vides pour l'écriture dans csv
listen=[0,1]
listeAn=[1,1]
for n in range (2,nmax):
gcd=int(math.gcd(n,listeAn[(n-1)]))
if gcd==1:
An=listeAn[(n-1)]+n+1
else:
An=int(listeAn[(n-1)]/gcd)
#remplissage de listei avec les valeurs de i
#remplissage de listec avec les valeurs de c
listen.append(n)
listeAn.append(An)
# export tableur
import pandas
df = pandas.DataFrame(data={"valeur de n": listen, "valeur de a(n)": listeAn})
#vous pouvez mettre
# ./donnees.csv
# ./donnees.ods
df.to_csv("./donnees.ods", sep=';',index=False)
# graphique
import numpy as np
import matplotlib.pyplot as plt
for n in range(nmax):
x = listen[n]
y = listeAn[n]
plt.scatter(x, y,color='red',s=2) #nuage de points xy, couleur rouge, taille 2
plt.title("Suite récursive étrange")
plt.axhline(y=0,color='black')
plt.axvline(x=0,color='black')
plt.show() # affiche la figure a l'ecran
Aucun commentaire:
Enregistrer un commentaire
Tout commentaire nous engage ;)