Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 25-07-2009 13:42:01

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 988

[Python] Caractéristiques du vol de la suite de Syracuse

Bonjour,

J'ai testé le programme proposé par SebastienB en le traduisant en Python...

Pour ceux qui ne veulent pas se reporter à la discussion ouverte à ce sujet dans la section "Café mathématique", voici la formulation mathématique rigoureuse proposée par SebastienB :

[tex]u:\begin{cases}\frac{u_n}{2}, & \text{Si $u_n$ est pair}\\3u_n + 1 & \text{Si $u_n$ est impair}\\ \end{cases}[/tex], [tex]\forall u_0 \in \mathbb{N^*},\; \;\exists n \in \mathbb{N} \;\;u_n = 1[/tex]


Quelques définitions :

* Temps de vol : c'est le plus petit indice n tel que $u_n = 1$
* Temps de vol en altitude : c'est le plus petit indice n tel que $u_n+1 < u_0$
* Altitude maximale : c'est la valeur maximale de la suite

#!/usr/bin/env python
# -*- coding: utf-8 -*-

print ('     *** Vol de la suite de Syracuse ***\n')


i,u_n,tpsVol,tpsVolAlt,altMax,sortie = 0,0,0,0,0,0
while not sortie:
    try:
        u_0=abs(int(input('Entrez la valeur de départ :')))
        sortie=1
    except ValueError:
        print("Ce n'est pas un nombre, veuillez recommencer s'il vous plaît")
        print()
       
u_i = u_0
while u_n != 1 :
    if u_i % 2 == 0:
        u_i = u_i / 2;
    else:
        u_i = u_i * 3 + 1      

    if ( ( u_i <= u_0 ) and (i > 0)  and  (tpsVolAlt == 0) ):
        tpsVolAlt = i
    if ( altMax < u_i ):
        altMax = u_i
    u_n = u_i
    i+=1

lg=max(len(str(i)),len(str(tpsVolAlt)),len(str(altMax)))
print()
print ("Temps de vol             : ",str(i).rjust(lg))
print ("Temps de vol en altitude : ",str(tpsVolAlt).rjust(lg))
print ("Altitude maximale        : ",str(altMax).rjust(lg))

Résultat :

*** Vol de la suite de Syracuse ***

Entrez la valeur de départ : 123456789

Temps de vol             :        177
Temps de vol en altitude :          2
Altitude maximale        :  370370368

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
quarantedeux plus trente quatre
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums