L'arbre des antécédants

Les suites de Syracuses sont définies comme suit :
\(u_0\in \mathbb Z\)
Si \(u_n\) est pair \(u_{n+1}=u_{n}/2 \)
Si \(u_n\) est impair \(u_{n+1}=3 u_n+1\)
Le but est de créer une visualisation de l'arbre des antécédants d'un entier donné. Pour cela, je vous fournis des fichiers à télécharger est à mettre dans un même dossier
Sont fournis

  • 2 fichiers .JS qui contiennent les bibliothèques graphiques (inutile d'ouvrir)
  • une feuile de style .CSS (inutile d'ouvrir)
  • un fichier .HTML (ouvrez le pour visualiser l'arbre)
  • un fichier .JSON qui contient les informations de l'arbre (ouvrez le pour comprendre le format)


  • Ecrire une fonction renvoyant les antécédants d'un entier par la fonction de récurence de Syracuse.
  • Ecrire une fonction calculant l'arbre des antécédants d'un entier jusqu'à une certaine profondeur
  • Ajouter à la classe Arbre définit dans l'exercice 2 une fonction renvoyant un arbre au format .JSON.
  • Représenter l'arbre des antécédant en utilisant les fichiers fournis


Boucle for

Une boucle for parcours toutes les valeurs d'un "itérateur" et execute un code pour chaque valeur. Un itérateur peut-être une liste, une chaine de caractère ou des objets plus complexes.

texte="plopinou est parti!"
for lettre in texte:
    print (lettre)

print (range(10))
for entier in range(10):
    print (entier)

En savoir plus »

Classe

Une classe est un objet personnalisé. Il peut contenir d'autres objets ou fonctions.

class Fraction:
	def __init__(self, numer=1,denom=1):
		self.denominateur=denom
		self.numerateur=numer
	def check(self):
		return (type(self.denominateur)==type(1)) and (type(self.numerateur)==type(1)) and (self.denominateur!=0)
	    
A=Fraction(1,2)
print (A)
print (A.numerateur)

En savoir plus »

Fichiers

L'écriture et la lecture de fichier se fait avec la commande open

mon_fichier = open("chemin.txt",'r') # 'r' pour 'read'
texte=mon_fichier.read() 
mon_fichier.close()  // ferme le fichier
texte=texte[:120]
autre_fichier = open("test.txt",'w') # 'w' pour 'write'
autre_fichier.write(texte)
autre_fichier.close()

En savoir plus »