Combinaisons possibles
Melissa75
Messages postés
21
Statut
Membre
-
heyquem Messages postés 808 Statut Membre -
heyquem Messages postés 808 Statut Membre -
Bonjour, j'ai le programme java suivant qui permet de me donner les résultats ci-dessous:
ce programme me fournit le résultat suivant:
Mes questions sont: comment je pourrai modifier dans mon programme de tel sorte à éliminer l'apparence des combinaisons d'ordre 1 à savoir: nom tout seul, prenom tout seul ou age tout seul.
En plus comment je pourrai faire pour rajouter les autres combinaisons: puisque d'après ce programme j'obtiens par exemple "nom prenom" mais non pas l'inverse et ainsi de suite.
comment je pourrai mettre en jeux le signe ==> entre les différentes chaines de caractères? par exemple nom==>prenom , prenom==>nom,....
merci d'avance.
public class Combin1 {
public String[] init() {
String mots[] = new String[3];
mots[0] = "nom";
mots[1] = "prenom";
mots[2] = "age";
return mots;
}
public int convertir_binaire(int x, int resultat[]) {
int quotient, nb_bits = 0;
int dividende = x;
do {
quotient = dividende / 2;
resultat[nb_bits] = dividende - (2 * quotient);
nb_bits++;
dividende = quotient;
} while (quotient > 0);
return nb_bits;
}
void afficher_parties(int nb_elts, String[] m) {
int i;
int[] resultat = new int[8];
for (int p = 0; p < 8; p++)
resultat[p] = 0;
int x = 0;
int n = convertir_binaire(x, resultat);
int compteur = 1;
while (n <= nb_elts) {
for (i = 0; i < n; i++)
if (resultat[i] == 1)
System.out.println(m[i]);
System.out.println("\n");
compteur++;
x++;
n = convertir_binaire(x, resultat);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Combin1 c = new Combin1();
String ma[] = c.init();
int nb_elts = ma.length;
c.afficher_parties(nb_elts, ma);
}
}
ce programme me fournit le résultat suivant:
nom prenom nom prenom age nom age prenom age nom prenom age
Mes questions sont: comment je pourrai modifier dans mon programme de tel sorte à éliminer l'apparence des combinaisons d'ordre 1 à savoir: nom tout seul, prenom tout seul ou age tout seul.
En plus comment je pourrai faire pour rajouter les autres combinaisons: puisque d'après ce programme j'obtiens par exemple "nom prenom" mais non pas l'inverse et ainsi de suite.
comment je pourrai mettre en jeux le signe ==> entre les différentes chaines de caractères? par exemple nom==>prenom , prenom==>nom,....
merci d'avance.
A voir également:
- Combinaisons possibles
- Toutes les combinaisons possibles avec 4 chiffres - Forum Jeux vidéo
- Combinaisons à 4 chiffres - Forum Programmation
- Algorythmes 1-9 chiffres combinaisons possibl - Forum Programmation
- Les combinaisons du clavier - Guide
- Combien de combinaisons possibles avec 6 chiffres - Forum Programmation
1 réponse
Bonjour,
Pour le fun, je me suis demandé comment faire ce que tu veux en Python.
Ca donne ceci:
qui affiche
39 lignes ton code qui ne fait pas tout, 5 lignes le code en Python qui fait tout et que j'ai mis 5 minutes à écrire
Y a pas photo.
Juste pour info.
Bonne chance avec Java
Pour le fun, je me suis demandé comment faire ce que tu veux en Python.
Ca donne ceci:
from itertools import permutations
itrbl = ('nom','prenom','age')
for i in xrange(2,len(itrbl)+1):
for el in permutations(itrbl,i):
print el,' ','==>'.join(el)
qui affiche
('nom', 'prenom') nom==>prenom
('nom', 'age') nom==>age
('prenom', 'nom') prenom==>nom
('prenom', 'age') prenom==>age
('age', 'nom') age==>nom
('age', 'prenom') age==>prenom
('nom', 'prenom', 'age') nom==>prenom==>age
('nom', 'age', 'prenom') nom==>age==>prenom
('prenom', 'nom', 'age') prenom==>nom==>age
('prenom', 'age', 'nom') prenom==>age==>nom
('age', 'nom', 'prenom') age==>nom==>prenom
('age', 'prenom', 'nom') age==>prenom==>nom
39 lignes ton code qui ne fait pas tout, 5 lignes le code en Python qui fait tout et que j'ai mis 5 minutes à écrire
Y a pas photo.
Juste pour info.
Bonne chance avec Java
Je me suis dit qu'il doit bien y avoir, comme en Python, une fonction qui produise des permutations disponible dans les librairies de Java.
Tu aurais intérêt à l'utiliser pour raccourcir ton code. A moins que tu souhaites coder à titre d'exercice.
Mais ça n'a pas l'air facile de trouver une telle fonction:
"It would be nice if there were a reasonably well-known library that implemented this sort of thing. Please let us know if you do find one. "
https://coderanch.com/t/416646/java/Permutations
Je n'en suis qu'à moitié étonné.
N'y a-t-il pas de bibliothèques standard en Java qui fournissent rapidement les fonctions les plus usuelles ?
Mon but n'est pas que quelqu'un change brusquement de langage, ce n'est pas facile de changer, mais juste de donner l'envie de vraiment comparer. Il y a trop d'inertie en informatique, je crois que certains s'accrochent à des convictions et repoussent de façon réflexe tout ce qui n'est pas leur langage mais qu'il y en a beaucoup qui ne pensent tout simplement pas à s'intéresser de près au moins une fois à ce que pourraient leur apporter d'autres habitudes.
Je n'arrive quand même pas à croire qu'il n'y a pas de bibliothèque , soit standard soit extérieure à Java, qui forunisse une fonction donnant les permutations.
Tu aurais sans doute intérêt d'aller voir un peu sur le forum Java de developpez.com ce qu'on pourrait t'y répondre, il y a des membres balèzes là-bas dans tous les langages.
nb: pas la peine de me vouvoyer :)