FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Une autre façon de terminer une application.
par Francis-mr Aujourd'hui à 12:07

» Compilateur FBPano
par jean_debord Aujourd'hui à 10:09

» Copier / coller du texte à partir de la fenêtre de commandes
par jean_debord Aujourd'hui à 9:46

» COMPILATEUR V 0.9 beta 8 du 18 aout 2017
par papydall Aujourd'hui à 5:01

» Mettre en windows en veille
par papydall Aujourd'hui à 4:15

» Stretch_on ne stretch plus...
par papydall Hier à 15:22

» Pb 18 (en analyse): RESTORE_LABEL avec DATA à la fin
par Jack Hier à 13:21

» Problème de traitement des opérateurs avec le compilateur.
par Pedro Alvarez Sam 19 Aoû 2017 - 20:01

» Pb 17 (résolu): ITEM_SELECT ne fonctionne pas
par Jack Jeu 17 Aoû 2017 - 19:26

» un nouveau editeur panobasic
par Jean Claude Jeu 17 Aoû 2017 - 10:18

» Le compilateur.
par Pedro Alvarez Jeu 17 Aoû 2017 - 8:36

» Pb 16 (résolu): ON_CLOSE plante à l'exécution
par Jack Mer 16 Aoû 2017 - 20:00

» Pb 15 (résolu): TIMER_ON plante à l'exécution
par Jack Mer 16 Aoû 2017 - 19:58

» KGF_dll - nouvelles versions
par Yannick Dim 13 Aoû 2017 - 17:35

» probleme d'outil
par Yannick Dim 13 Aoû 2017 - 17:32

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 La suite de Syracuse

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
papydall

avatar

Nombre de messages : 5518
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: La suite de Syracuse   Sam 2 Fév 2013 - 3:13

Salut tout le monde.

Le code suivant illustre la suite de Syracuse appelée aussi suite de Collatz ou suite 3A+1.
Tout est dans le code.
Code:
' ******************************************************************************
' La suite 3A + 1 ou suite de Syracuse ou suite de Collatz

' C'est une suite de nombres entiers définie comme suit :
' 1) Prendre comme valeur initiale un naturel A
' 2) Si A = 1 alors STOP
' 3) Si A est pair, remplacer A par A/2 et aller en 2)
' 4) Si A est impair, remplacer A par 3 * A + 1 et aller en 2)
' ------------------------------------------------------------------------------
'
' On obtient une suite de nombres qui est appelée :
' - le vol du nombre de départ,
' - les nombres de la suite sont appelés les étapes du vol,
' - le plus grand nombre obtenu dans la suite est appelé l'altitude maximale du vol,
' - le nombre d'étapes avant de passer sous le nombre de départ est appelé la
'  durée du vol en altitude.

' Une fois atteint le nombre 1, la suite des valeurs (1,4,2,1,4,2…) se répète
' indéfiniment en un cycle de longueur 3, appelé cycle trivial.

' ******************************************************************************
Init()
n% = 27 : ' Essayer d'autres valeurs
' n% = 97
' n% = 999
' n% = 214
' ....

Syracuse(n%) : Affiche()
end

' ******************************************************************************
SUB Init()
    label fin
    dim n%,c$,s,vol,vol_alt,alt_max,tex$
    width 0, 1200 : caption 0,"La suite de Syracuse par PAPYDALL"

    container 5 : top 5,10 : left 5,100 : width 5,1000 : height 5,100 : hide 5
    alpha 6 : parent 6,5 : top 6,10 : left 6,100
    color 6,0,0,0 : font_color 6,255,255,0: font_bold 6 : font_size 6,11

    container 10 : top 10,120 : left 10,100 : width 10,1000 : height 10,300 :hide 10
    alpha 20 : parent 20,10 : top 20,20 : left 20,100
    color 20,0,0,0 : font_color 20,255,255,0: font_bold 20 : font_size 20,11

    alpha 21 : parent 21,10 : top 21,20 : left 21,300
    hint 21,"c'est le nombre de termes de la suite pour atteindre 1"
    color 21,0,0,0 : font_color 21,255,255,0: font_bold 21 : font_size 21,11

    alpha 22 : parent 22,10 : top 22,20 : left 22,450
    hint 22,"c'est le plus petit indice n tel que Un+1 < U0"
    color 22,0,0,0 : font_color 22,255,255,0: font_bold 22 : font_size 22,11

    alpha 23 : parent 23,10 : top 23,20 : left 23,700
    hint 23,"c'est la valeur maximale de la suite"
    color 23,0,0,0 : font_color 23,255,255,0: font_bold 23 : font_size 23,11

    alpha 25 : parent 25,10 : top 25, 200 : left 25,50
    color 25,0,0,0 : font_color 25,255,255,0: font_bold 25 :font_size 25,11
   
    button 26 : parent 26,10 : top 26,250 : left 26,350 : caption 26,"OK"
    font_bold 26 : on_click 26,fin

    alpha 30 : parent 30,10 : top 30,50 : left 30,20 : width 30,900
END_SUB
' ******************************************************************************
SUB Affiche()
    dim_local tex$
    caption 20,"Suite de Syracuse : " + str$(n%)
    caption 30,c$
    caption 21,"Temps de vol : " + str$(vol-1)
    caption 22,"Temps de vol en altitude : " + str$(vol_alt - 1)
    caption 23,"Altitude maximale : " + str$(alt_max)

    tex$ = " La suite 3A + 1 ou suite de Syracuse ou de Collatz "
    tex$ = tex$ + "est une suite de nombres entiers définie comme suit : " +chr$(13)
    tex$ = tex$ + " 1) Prendre comme valeur initiale un naturel A"+chr$(13)
    tex$ = tex$ + " 2) Si A = 1 alors STOP" + chr$(13)
    tex$ = tex$ + " 3) Si A est pair, remplacer A par A / 2 et aller en 2)" + chr$(13)
    tex$ = tex$ + " 4) Si A est impair, remplacer A par 3 * A + 1 et aller en 2)"
    caption 6,tex$

    tex$ = " La conjecture de Syracuse s’énonce ainsi : "
    tex$ = tex$ + "quel que soit le nombre que l’on choisisse au départ, "
    tex$ = tex$ + "on finira par tomber sur 1." +chr$(13)
    tex$ = tex$ + " Si la conjecture de Syracuse est vraie, quel que soit le nombre initial "
    tex$ = tex$ + "on doit tomber sur le cycle 4,2,1, appelé cycle trivial."
    caption 25,tex$
END_SUB
' ******************************************************************************
SUB Syracuse(a%)
    dim_local u0,flag%,l%
    if a% < 1  then message "La valeur de A doit être un entier positif":terminate
    show 5 : show 10
    u0 = a% : flag% = 0 : alt_max = a% : vol_alt = 1
    while 1 = 1
        c$ = c$ + str$(a%)+"  "  : vol = vol + 1 : l% = len(c$)
        if mod(vol,30) = 0 then c$ = c$ + chr$(13)
        if a% < 2 then exit_sub
        if a%/2 <> int(a%/2) then a% = 3 * a% + 1 : else : a% = a% / 2
        if flag% = 0
            if a% < u0 then vol_alt = vol : flag% = 1
        end_if
        if a% > alt_max then alt_max = a%
    end_while
end_sub
' ******************************************************************************
fin:
terminate
' ******************************************************************************
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 7975
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 2 Fév 2013 - 4:05

Pour ma petite personne et celles qui ne sont pas scientifiques pour deux sous,
peux tu nous expliquer à quoi elle sert et ce qu'elle définie?

merki ! Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5518
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: La suite de Syracuse   Sam 2 Fév 2013 - 4:51

La suite de Syracuse est une simple curiosité mathématique !
Tous les grands mathématiciens de ce monde se sont penchés sur elle.
Mais personne (même pas les plus grands mathématiciens de nos jours) n’a pu confirmer ou infirmer la conjecture !
Cette suite cache beaucoup de mystères !

Pour moi, c’était un simple exercice de codage pour éviter d’être rouillé !
Sinon mes mécanismes cesseront de tourner rond !


Si cette explication te laisse sur ta faim, pose la question à Google :
Il te fournira une avalanche d’informations sur cette suite. king
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 7975
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 2 Fév 2013 - 5:20

Je pensais seulement qu'elle avait une application pratique... confused


PS: affraid Je lis sur wiki que plus d'un mathématicien s'est penché sur cette suite.
Ils devaient s'ennuyer ferme pour passer du temps sur un truc pareil, non ? geek

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5518
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: La suite de Syracuse   Sam 2 Fév 2013 - 16:38

Non !
Ils étaient (et ils le sont toujours) curieux !
Parce qu'ils sont mathématiciens !!!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 7975
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 2 Fév 2013 - 17:24

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5518
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: La suite de Syracuse   Sam 2 Fév 2013 - 18:03

Je ne vous cherche pas !
Mais puisque vous êtes déjà dehors, sauriez-vous comment vous allez faire pour rentrer ?!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 7975
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 2 Fév 2013 - 18:11

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: La suite de Syracuse   

Revenir en haut Aller en bas
 
La suite de Syracuse
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» suite de Syracuse
» RESOLU works suite 2004 (word) non installé ??
» Bug suite à la mise à jour 10.0.45.2 du player flash résolu
» Outpost Security Suite FREE
» [Résolu] comment mettre plusieurs animationa la suite

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Les inutilitaires-
Sauter vers: