Suites de syracuse
Résolu/Fermé
reda.92
Messages postés
5
Date d'inscription
dimanche 22 mai 2011
Statut
Membre
Dernière intervention
24 mai 2011
-
22 mai 2011 à 01:24
reda.92 Messages postés 5 Date d'inscription dimanche 22 mai 2011 Statut Membre Dernière intervention 24 mai 2011 - 24 mai 2011 à 01:01
reda.92 Messages postés 5 Date d'inscription dimanche 22 mai 2011 Statut Membre Dernière intervention 24 mai 2011 - 24 mai 2011 à 01:01
A voir également:
- Suites de syracuse
- Chaque paragraphe doit être espacé de 0,42 cm ou 12 pt du paragraphe qui suit - Guide
- Ai suites - Télécharger - Optimisation
- Appliquez à tous les paragraphes du document à télécharger, à l’exception des titres et des sous-titres, la mise en forme suivante : chaque paragraphe doit être espacé de 0,42 cm ou 12 pt du paragraphe qui suit les textes ne doivent pas être en retrait à droite et à gauche après ces modifications, sur quelle page se trouve le titre « la cheminée » dans le chapitre « informations diverses » ? ✓ - Forum Word
- Mon style de texte s'applique à tout mon paragraphe - Forum LibreOffice / OpenOffice
- Microsoft Office 2007 suites (KB2825645) - Erreur 0x80070663 - Forum Bureautique
5 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
22 mai 2011 à 15:54
22 mai 2011 à 15:54
Le problème vient de ton s.longueur++ dans la deuxième boucle
Dans la deuxième boucle imbriquée tu peux l'incrémenter plusieurs fois
Du coup tu peux avoir testé s.longueur<nb puis s.longueur>nb sans jamais tomber sur test.longueur==nb
Modifie ta condition par while(s.longueur<nb) et ça devrait aller
Dans la deuxième boucle imbriquée tu peux l'incrémenter plusieurs fois
Du coup tu peux avoir testé s.longueur<nb puis s.longueur>nb sans jamais tomber sur test.longueur==nb
Modifie ta condition par while(s.longueur<nb) et ça devrait aller
reda.92
Messages postés
5
Date d'inscription
dimanche 22 mai 2011
Statut
Membre
Dernière intervention
24 mai 2011
23 mai 2011 à 03:16
23 mai 2011 à 03:16
oui ca marche merci, mais pour {db-1} il affiche la valeur 7 tjrs quelque soit la valeur que je donne au debut {s.un} qui normalement devrait afficher s.un.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
23 mai 2011 à 13:54
23 mai 2011 à 13:54
Il n'affiche pas toujours 7, loin de là ! Cependant il est difficile de savoir quand les résultats obtenus sont bons ou pas puisqu'on ne sait pas ce que tu veux faire, ni pourquoi tu le fais comme ça !!!
db-1 <-- u1 (de 1 à 50) 0 <-- 1 2 <-- 2 3 <-- 3,4,5,6,8,10,16,20,21,32,40,42 4 <-- 12,13,24,26 5 <-- 11,17,22,23,34,35,48 6 <-- 7,9,14,15,18,19,25,28,29,30,36,37,39,44,45,46 7 <-- 33,39,43,49,50 14 <-- 27,31,41,47
reda.92
Messages postés
5
Date d'inscription
dimanche 22 mai 2011
Statut
Membre
Dernière intervention
24 mai 2011
23 mai 2011 à 21:23
23 mai 2011 à 21:23
ce que je veux du programme c'est que la valeur (db-1)=U1, sans faire un affectation
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
23 mai 2011 à 21:50
23 mai 2011 à 21:50
Tu veux remonter l'algorithme de Syracuse ?
En partant de 1, et avec pour seule information la longueur de la chaîne ?
À vue de nez je dirais qu'il y a 2^longueur résultats possibles !
En partant de 1, et avec pour seule information la longueur de la chaîne ?
À vue de nez je dirais qu'il y a 2^longueur résultats possibles !
reda.92
Messages postés
5
Date d'inscription
dimanche 22 mai 2011
Statut
Membre
Dernière intervention
24 mai 2011
23 mai 2011 à 22:29
23 mai 2011 à 22:29
regarde pour mieux comprendre je vais t'ecrire ce qui est demandé:
-ecriver une fonction qui prenant en paramètre l'amorce d'une suite de syracuse, revoie sa longueur (ça je l'ai fais).
-ecrivez alors un programme principale qui, après avoir demandé un entier n, affiche les longueurs des n suites de syracuse d'amorces successives 1,2,3,...,n.
-adaptez le programme precedent pour obtenir à partir de n la longueur maximale des suites d'amorce allant de 1 à n, ainsi que la valeur de la plus petite amorce ayant donné cette longueur maximale. (exemple, pour n=100 000, la plus longue suite contient 351 termes et est obtenu pour l'amorce U1=77 031).
-ecriver une fonction qui prenant en paramètre l'amorce d'une suite de syracuse, revoie sa longueur (ça je l'ai fais).
-ecrivez alors un programme principale qui, après avoir demandé un entier n, affiche les longueurs des n suites de syracuse d'amorces successives 1,2,3,...,n.
-adaptez le programme precedent pour obtenir à partir de n la longueur maximale des suites d'amorce allant de 1 à n, ainsi que la valeur de la plus petite amorce ayant donné cette longueur maximale. (exemple, pour n=100 000, la plus longue suite contient 351 termes et est obtenu pour l'amorce U1=77 031).
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
23 mai 2011 à 23:18
23 mai 2011 à 23:18
En fait le premier point est mal fait car tu n'as pas fait une fonction, tu as tout mis dans le main, et au lieu de calculer juste la longueur tu affiches tous les résultats et ce n'est pas réutilisable.
Il te faut une fonction int longueur(int n) qui prend l'amorce n, et calcule la longueur jusqu'à 1.
En effet dans le deuxième point on ne te demande pas d'afficher toute la suite d'amorce n, mais d'afficher les longueurs obtenues avec la première fonction pour chaque k compris entre 1 et n.
Exemple d'affichage attendu :
Et enfin, le troisième point te demande juste de dire quel est la longueur maximale calculée, et le plus petit des k qui a généré cette longueur.
Exemple d'affichage attendu :
Il te faut une fonction int longueur(int n) qui prend l'amorce n, et calcule la longueur jusqu'à 1.
En effet dans le deuxième point on ne te demande pas d'afficher toute la suite d'amorce n, mais d'afficher les longueurs obtenues avec la première fonction pour chaque k compris entre 1 et n.
Exemple d'affichage attendu :
Entrez n : 5 k=1 --> longueur=0 k=2 --> longueur=2 k=3 --> longueur=8 k=4 --> longueur=3 k=5 --> longueur=6
Et enfin, le troisième point te demande juste de dire quel est la longueur maximale calculée, et le plus petit des k qui a généré cette longueur.
Exemple d'affichage attendu :
Entrez n : 100000 La longueur maximale est 351 pour k=77031
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
reda.92
Messages postés
5
Date d'inscription
dimanche 22 mai 2011
Statut
Membre
Dernière intervention
24 mai 2011
Modifié par reda.92 le 24/05/2011 à 01:21
Modifié par reda.92 le 24/05/2011 à 01:21
j'ai fait les autres point mais pour le deuxieme point je n'ai pas su faire
pourrais tu m'envoyer la boucle??
merci
pourrais tu m'envoyer la boucle??
merci