IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

[Suite de Syracuse] Comment résoudre ce programme ?


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2011
    Messages : 19
    Par défaut [Suite de Syracuse] Comment résoudre ce programme ?
    Bonjour,

    je sais que ce que je demande est vraiment trop, mais j'arrive pas à trouver un commencement acceptable pour ce sujet :

    La suite de Syracuse d'un nombre entier N est définie par la récurrence:

    Un = 0

    et pour tout entier >= 0 : Un+1 ={
    Un/2, si Un est pair
    3Un+1, si Un est impair

    La conjecture affirme que, pour tout n > 0, il existe un indice n tel que un = 1.

    Écrire un programme Syracuse.java qui demande un entier N à l'utilisateur et qui affiche sur une même ligne:
    le rang n le plus petit pour lequel un =1
    la moyenne des valeurs ui pour i allant de 0 à n
    le symbole :
    l'ensemble des valeurs de la suite, du rang 0 au rang n pour lequel un = 1.

    Par exemple, sur l'entrée de 15 votre programme soit afficher:
    17 38.6: 15 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1
    car u17 est le premier élément de la suite qui vaut 1 et 38.6 est la moyenne des 18 premières valeurs de la suite (celles qui sont affichées), soit ici 694/18 ≈ 38.55.

    Ce serait vraiment cool si je pourrais avoir une solution, Merci.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    si vous précisiez sur quoi vous coincez, parce qu'on ne va pas faire le travail pour vous.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2011
    Messages : 19
    Par défaut
    je voudrais savoir par quoi je pourrais commencer, et comment pourrais-je répéter l'opération, jusqu'à trouver 1.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    a priori; le plus simple estd'implémenter ça dans une méthode récursive:
    http://recursivite.developpez.com/?page=sommaire

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2011
    Messages : 19
    Par défaut
    Voila ce que j'ai pu faire ! est-ce bon ?!




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    import java.util.Scanner;
     
    public class Syracuse {
     
    	public static void main (String [] args){
     
    	Scanner input = new Scanner(System.in);
     
    // demander un entier N
    System.out.print("Entrez un nombre entier N: ");
    int n = input.nextInt();
     
    do{
    if((n % 2) == 0)
    n /= 2;
    else
    n = 3*n+1;
    } while(n > 1);
    return;
    }
    }

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    je vois pas dans votre code en quoi Un dépend de Un-1, je crois que vous devriez relire votre énoncé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 21/05/2010, 16h17
  2. [CR]Comment résoudre ceci ?
    Par titdiable dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 15/12/2004, 13h10
  3. comment deployer un programme fait avec jbuilder
    Par showmetheway dans le forum JBuilder
    Réponses: 6
    Dernier message: 23/09/2003, 01h11
  4. Réponses: 8
    Dernier message: 05/06/2002, 11h55
  5. Comment débuter en programmation ?
    Par Marc Lussac dans le forum Débuter
    Réponses: 0
    Dernier message: 08/04/2002, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo