Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Invité régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2012
    Messages : 26
    Points : 5
    Points
    5

    Par défaut Commenter un programme

    Bonjour
    Pourrais t'on SVP m'aider via des commentaires bien explicites et expliqués étapes par étapes pour bien comprendre ce programme: pour indice c'est un algo qui partant d'une ville de départ (paris) doit faire le tour de 6 villes pour revenir à paris, donc il y'a un total de 7 villes ^^ et il doit toujours trouver la distance la plus proche choisir cette ville et y'a pas possibilité de passer dans une ville 2 fois.
    Je precise qu'il y'a 3 fichiers joints: respectivement Algo.java et ville.java et le fichier des distances entre les villes.
    je vous remercie d'avance
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    import java.util.HashMap;
    import java.util.Map.Entry;
     
    public class Algo{
     
    	private HashMap<String,Ville> villes;
     
    	public Algo(){
     
    		villes = new HashMap<String,Ville>();
     
    		Ville nice = new Ville("Nice");
    		nice.addDistance("Angers",999);
    		nice.addDistance("Bordeaux",844);
    		nice.addDistance("Clermond",620);
    		nice.addDistance("Paris",950);
    		nice.addDistance("Strasbourg",842);
    		nice.addDistance("Montpellier",345);
    		villes.put(nice.getNom(),nice);
     
    		Ville angers = new Ville("Angers");
    		angers.addDistance("Nice",999);
    		angers.addDistance("Bordeaux",335);
    		angers.addDistance("Clermond",402);
    		angers.addDistance("Paris",303);
    		angers.addDistance("Strasbourg",742);
    		angers.addDistance("Montpellier",692);
    		villes.put(angers.getNom(),angers);
     
    		Ville bordeaux = new Ville("Bordeaux");
    		bordeaux.addDistance("Nice",844);
    		bordeaux.addDistance("Angers",335);
    		bordeaux.addDistance("Clermond",369);
    		bordeaux.addDistance("Paris",561);
    		bordeaux.addDistance("Strasbourg",958);
    		bordeaux.addDistance("Montpellier",499);
    		villes.put(bordeaux.getNom(),bordeaux);
     
    		Ville clermond = new Ville("Clermond");
    		clermond.addDistance("Nice",620);
    		clermond.addDistance("Angers",102);
    		clermond.addDistance("Bordeaux",369);
    		clermond.addDistance("Paris",425);
    		clermond.addDistance("Strasbourg",574);
    		clermond.addDistance("Montpellier",367);
    		villes.put(clermond.getNom(), clermond);
     
    		Ville paris = new Ville("Paris");
    		paris.addDistance("Nice",950);
    		paris.addDistance("Angers",303);
    		paris.addDistance("Bordeaux",561);
    		paris.addDistance("Clermond",425);
    		paris.addDistance("Strasbourg",448);
    		paris.addDistance("Montpellier",763);
    		villes.put(paris.getNom(),paris);
     
    		Ville strasbourg = new Ville("Strasbourg");
    		strasbourg.addDistance("Nice",842);
    		strasbourg.addDistance("Angers",742);
    		strasbourg.addDistance("Bordeaux",958);
    		strasbourg.addDistance("Clermond",574);
    		strasbourg.addDistance("Paris",448);
    		strasbourg.addDistance("Montpellier",727);
    		villes.put(strasbourg.getNom(),strasbourg);
     
    		Ville montpellier = new Ville("Montpellier");
    		montpellier.addDistance("Nice",345);
    		montpellier.addDistance("Angers",692);
    		montpellier.addDistance("Bordeaux",499);
    		montpellier.addDistance("Clermond",367);
    		montpellier.addDistance("Paris",763);
    		montpellier.addDistance("Strasbourg",727);
    		villes.put(montpellier.getNom(),montpellier);
    	}
     
    	public HashMap<String,Ville> getVilles(){
    		return this.villes;
    	}
     
    	public int displayTravelingSalesmanV1(String nom, String arrive, HashMap<String,Ville> villesRestantes){
     
    		int min = Integer.MAX_VALUE;
    		String nextVille = null;
    		int distance;
     
    		for(Entry<String, Ville> entry : villesRestantes.entrySet()) {
    		    Ville value = entry.getValue();
    		   	distance = value.getDistanceTo(nom);
    			if(distance > 0 && distance < min && (!arrive.equals(value.getNom()) || villesRestantes.size() <= 1)){
    				min = distance;
    				nextVille = value.getNom();
    			}
    		}
     
     
    		if(nextVille != null){
    			villesRestantes.remove(nextVille);
    			System.out.println(nom + " -> " + nextVille + " = " + min + "km");
    			return min + displayTravelingSalesmanV1(nextVille,arrive,villesRestantes);
    		}
    		return 0;
    	}
     
    	int[][] suites = new int[7][7];
     
    	public int displayTravelingSalesmanV2(int i, int j){
     
     
    	}
     
    	public static void main(String[] args){
    		Algo algo = new Algo();
    		int distanceTotale = algo.displayTravelingSalesmanV1("Paris","Paris", algo.getVilles());
     
    		System.out.println("Distance Total parcourue: " + distanceTotale + "km");
    	}
     
    }

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    import java.util.HashMap;
     
    public class Ville{
     
    	private HashMap<String,Integer> distances; 
    	private String nom;
     
    	public Ville(String nom){
    		this.nom = nom;
    		this.distances = new HashMap<String,Integer>();
    	}
     
    	public String getNom(){
    		return this.nom;
    	}
     
    	public void addDistance(String ville,Integer distance){
    		this.distances.put(ville,distance);
    	}
     
    	public Integer getDistanceTo(String ville){
     
    		if(this.distances.containsKey(ville)){
    			return this.distances.get(ville);
    		}
     
    		return -1;
    	}
     
     
     
    }
    Images attachées Images attachées
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur

    Inscrit en
    septembre 2004
    Messages
    9 718
    Détails du profil
    Informations forums :
    Inscription : septembre 2004
    Messages : 9 718
    Points : 16 040
    Points
    16 040

    Par défaut

    Ce programme fait exactement ce que tu en dis au début de ton message.
    Ta question ressemble à quelqu'un qui nous demande de faire ses devoirs et qui va les rendre tels quels à son prof. Si ce n'est pas le cas, pose une question plus ciblée que ça.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher du poisson, il videra le lac et au bout de deux ans son village ne mangera plus jamais.
    Partagez vos connaissances, mais aussi comment s'en servir.

  3. #3
    Modérateur
    Avatar de wax78
    Homme Profil pro Renaud Warnotte
    Développeur informatique
    Inscrit en
    août 2006
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Nom : Homme Renaud Warnotte
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2006
    Messages : 2 652
    Points : 5 008
    Points
    5 008

    Par défaut

    Bizarre, mais j'avais la même impression

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro Andry Aimé
    Inscrit en
    septembre 2007
    Messages
    7 097
    Détails du profil
    Informations personnelles :
    Nom : Homme Andry Aimé
    Localisation : Ile Maurice

    Informations forums :
    Inscription : septembre 2007
    Messages : 7 097
    Points : 12 005
    Points
    12 005

    Par défaut

    Bonjour,

    Il te suffit de voir l'utilisation d'un HashMap et tu dois tout comprendre.

    A+.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •