Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CONJECTURE DE SYRACUSE


Information sur la source

Catégorie :Maths Niveau : Débutant Date de création : 01/01/2005 Date de mise à jour : 01/01/2005 21:02:50 Vu / téléchargé: 2 427 / 139

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

Description

pti code sympa sans prétention
la conjecture de syracuse :
avec nimportequel nombre grace au procédé on arrive à 1
-si le nombre est pair on le divise par 2
-si impair = 3*x+1

jamais démontré...
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

01 janvier 2005 21:02:50 :
ptite modif : vider la liste à chaque nouveau calcul pr éviter la superposition

Commentaires et avis

signaler à un administrateur
Commentaire de Cracker le 01/01/2005 19:04:25

sympa, j'avais fait la meme chose sur ma calculatrice graphique histoire de m'occuper quelque minutes en cours ;) !!
Sinon, ta source a l'air de bien fonctionner.
Le seul truc qui est dommage, c'est la limite de capacité, mais je vois pas comment regler le probleme car meme avec un long ca ne fonctionne pas :(

signaler à un administrateur
Commentaire de bilaloch le 01/01/2005 19:41:03

Tres interresan. Merci pour ce code. A part, ajoute ca avant "On Error GoTo erreur" (evite le zero) :

If x = 0 Then MsgBox "N'entrez pas 0" :Exit Sub

Voila

Meci encore et @ ++

BILALoch

signaler à un administrateur
Commentaire de zoneo le 01/01/2005 21:04:58

merci pr le conseil bilaloch, faut aussi éviter les nombre négatifs : il aime pas trop
mais ca se résout ac un pti abs jpense

signaler à un administrateur
Commentaire de jack le 02/01/2005 01:07:31 administrateur CS

lol, problème : manque le Form1.frx dans le Zip
Et il y a un truc que je comprends pas :
- Tu prends un nombre quelconque
- Si pair, tu le divise par 2
- Si impair, tu le multiplies par 3 et ajoute 1

J'ai fais l'essai sous Excel, la formule a tendance à partir vers l'infini, je vois pas trop de quoi tu parles avec le chiffre '1' ...

signaler à un administrateur
Commentaire de zoneo le 02/01/2005 14:51:18

en rép à jack
le principe c une boucle, tu ne fais pas l'opération une seule fois mais autant de fois nécessaire pour arriver à 1
et une fois à 1 ca ne bouge plus car :
1
1*3+1=4
4/2=2
2/2=1
...

signaler à un administrateur
Commentaire de Warny le 02/01/2005 14:55:34

Jack -> la moitié des nombres sont impairs
Si tu multiplies un nombre impaire par trois tu obtiens un nombre impair, si tu ajoutes 1 il devient pair.
Si tu as un nombre pair tu le divise par 2 et tu as une chance sur 2 (en principe) d'obtenir un nombre pair.
Si on fait une analyse de l'algorithme, on se rend compte d'un équilibre statistique entre l'augmentation impaire et la diminution paire qui rend difficile (impossible ?) la démonstration de l'arrivée à 1.
En fait, quelque soit le nombre de départ il apparait qu'on finit par tomber sur une séquence de puissance de 2 qui finissent toujours pas aboutir à 1.
évidemment, toute séquence (vol) qui abouti à 1 est peut-être une sous-séquence d'une autre séquence, qui elle-même aboutirai alors à 1.
Il semble impossible de trouver une séquence qui rebouclerai sur elle-même ou encore plus difficile qui arrive à l'infini (qui est truffé de puissances de deux bien sûr !!!).
Dans le premier cas chaque élément de la séquence pourrait servir de point de départ or aucun élément n'a jamais été trouvé pour servir de point de départ à une telle séquence (à par 1, 2 et 4 bien sûr, mais c'est la définition de l'algo qui veut ça)
Dans le deuxième cas comme je l'explique, l'infini est truffé de puissances de 2 et se séquences qui respectent la conjecture. Il est donc improbable (mais pas impossible sauf démonstration du contraire) de trouver une séquence sans "limite"

signaler à un administrateur
Commentaire de jack le 02/01/2005 18:03:55 administrateur CS

Ok Ok, je n'avais pas poussé l'analyse assez loin, merci de ces explications.

Par contre, Zoneo, il y a un problème avec ton Zip : La Form1 ne se charge pas correctement. Je ne sais pas si ça le fait à d'autres ?

signaler à un administrateur
Commentaire de bilaloch le 02/01/2005 19:39:34

Re,

Personnellement, ca fonctionne a merveille chez moi :)

@ ++

BILALoch

signaler à un administrateur
Commentaire de tbbuim1 le 11/01/2005 11:45:59

Perso, j'ai résolu le problème de capacité en faisant:
Private Sub Lancer_AfterUpdate()
    Dim cpt As Integer
    Dim a,b as double
    a = Me.Nb
    b = a
    Res = a & " "
    cpt = 0
    DoCmd.Hourglass True
    While a <> 1
        cpt = cpt + 1
        Select Case (Right(a, 1) Mod 2)
            Case Is = 1: a = (3 * a) + 1: Res = Res & a & " "
            Case Is = 0: a = a / 2: Res = Res & a & " "
        End Select
        If a > b Then b = a
    Wend
    DoCmd.Hourglass False
    Altitude = b
    Durée = cpt
End Sub

En testant uniquement la fin du nombre, on peut aller plus loin. Par exemple, je peux calculer la conjecture de:
123456789123456 => durée = 326

Et ya un blem avec ton zip, pour moi aussi.

signaler à un administrateur
Commentaire de Dagnir le 19/01/2005 23:58:03

Heu j'ai surement rien compris mais si un nombre est impaire  il n'y a qu'à lui ajouter 1 pour le rendre paire et donc divisible par 2, il n'y a pas besoin de lui multiplier par 3 avant.

signaler à un administrateur
Commentaire de Warny le 20/01/2005 09:04:27

dagnir  -> tu n'as pas bien suivi mon explication :
si tu ajoute 1 et que tu divises par 2 ta suite devient forcement décroissante donc le problème est ininterressant

signaler à un administrateur
Commentaire de souga le 19/05/2005 23:52:42

en faite g des question a poser a tout les amateur de visual basic car je ne trouve pa les reponse:
g lu le code de zoneo mais il puorrait etre plu précis et je sais pas comment faire donc avis o amateur
en faite jvoulais ke quand jentre une lettre (ex "a" ou "b") ou le nombre "0" ou meme un nombre negatif ou a virgule ca me di "saisi incorecte"
voila je vous remercie d'avance

signaler à un administrateur
Commentaire de Warny le 20/05/2005 08:23:09

Use the forum, young souga.
Souga -> ce genre de question se pose sur le forum. Sinon, sur l'évenement onChange ou onLostFocus du textBox tu vérifies si la saisie s'écarte de ce que tu attends

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.