Trouver une combinaison
Fermé
parousky
Messages postés
325
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
20 février 2022
-
10 juil. 2014 à 20:29
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 15 juil. 2014 à 07:37
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 15 juil. 2014 à 07:37
A voir également:
- Trouver une combinaison
- Trouver adresse mac - Guide
- Trouver une adresse - Guide
- Comment trouver le mot de passe wifi sur son téléphone - Guide
- Trouver un nom avec une adresse ✓ - Forum Réseaux sociaux
- Trouver un numéro de portable avec un nom ✓ - Forum Mobile
3 réponses
ProvencaleLeGaulois
Messages postés
48
Date d'inscription
lundi 2 juin 2014
Statut
Membre
Dernière intervention
18 septembre 2014
6
11 juil. 2014 à 11:41
11 juil. 2014 à 11:41
Bonjour parousky,
Je pense que le plus gros travail qui est à faire sur ce sujet se situe au niveau mathématique.
D'après ce que tu dis j'ai l'impression qu'il te faudrait avoir un équation paramétrée qui te permette de modifier les 4 valeurs et de voir le résultat en temps réel.
Est-ce que tu peux modéliser ça sur un fichier Excel ?
Si oui, penses-tu que le programme en java apportera une valeur ajoutée ?
A+
Je pense que le plus gros travail qui est à faire sur ce sujet se situe au niveau mathématique.
D'après ce que tu dis j'ai l'impression qu'il te faudrait avoir un équation paramétrée qui te permette de modifier les 4 valeurs et de voir le résultat en temps réel.
Est-ce que tu peux modéliser ça sur un fichier Excel ?
Si oui, penses-tu que le programme en java apportera une valeur ajoutée ?
A+
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
11 juil. 2014 à 18:48
11 juil. 2014 à 18:48
Bonjour,
Il y a pas mal de données utiles qui nous manquent pour comprendre le problème.
Déjà je ne vois pas le lien avec la mécanique automobile, est-ce important ici ?
Ensuite quelles sont tes contraintes physiques ? Est-ce que tu es en 2D (toutes les pièces sont posées au sol) ou en 3D (les pièces peuvent être les unes sur les autres) ? Tu as un espace discret ou continu (un nombre fini ou infini de position) ?
Après on s'oriente soit vers de la recherche opérationnelle (mathématiques) soit vers de l'intelligence artificielle (combinatoire), sauf si vraiment le problème se simplifie bien et dans ce cas on boucle en force brute...
Il y a pas mal de données utiles qui nous manquent pour comprendre le problème.
Déjà je ne vois pas le lien avec la mécanique automobile, est-ce important ici ?
Ensuite quelles sont tes contraintes physiques ? Est-ce que tu es en 2D (toutes les pièces sont posées au sol) ou en 3D (les pièces peuvent être les unes sur les autres) ? Tu as un espace discret ou continu (un nombre fini ou infini de position) ?
Après on s'oriente soit vers de la recherche opérationnelle (mathématiques) soit vers de l'intelligence artificielle (combinatoire), sauf si vraiment le problème se simplifie bien et dans ce cas on boucle en force brute...
parousky
Messages postés
325
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
20 février 2022
6
14 juil. 2014 à 22:43
14 juil. 2014 à 22:43
Bonjour, c'est vrai que cela manque pas mal de précision ! Alors en étudiant un peu plus mon problème, je sais que chaque poids doit être supérieur à 0.25. Ensuite, c'est à moi de préciser la limite supérieure. Etant donné que je peux contrôler la précision de la masse de chaque pièce au centième près, je voudrais tester toutes les combinaisons de quatre double compris entre 0.25 et ma limite/4. Alors j'ai écris ce code là :
for(int i=0;i<Max+1;i++)
{
S4 = 0.25 + 0.01*i;
for(int j=0;j<Max+1;j++)
{
S3 = 0.25+0.01*j;
for(int k=0;k<Max+1;k++)
{
S2 = 0.25 + 0.01*k;
for(int l=0; l<Max+1;l++)
{
S1 = 0.25 + 0.01*l;
//Ensuite je teste si le centre de gravité est bien dans la pièce, ce qui se traduit par :
if(G[0]>=0 && G[1]>=0 && G[2]>=0 && G[3]>=0)
{
System.out.println(""+S1+" sur 1, "+S2+" sur 2, "+S3+" sur 3, "+S4+" sur 4");
}
}
}
}
}
Seulement ça ne teste pas toutes mes combinaisons... Ais-je mal codé une partie ?
Merci d'avance pour vos réponses !
for(int i=0;i<Max+1;i++)
{
S4 = 0.25 + 0.01*i;
for(int j=0;j<Max+1;j++)
{
S3 = 0.25+0.01*j;
for(int k=0;k<Max+1;k++)
{
S2 = 0.25 + 0.01*k;
for(int l=0; l<Max+1;l++)
{
S1 = 0.25 + 0.01*l;
//Ensuite je teste si le centre de gravité est bien dans la pièce, ce qui se traduit par :
if(G[0]>=0 && G[1]>=0 && G[2]>=0 && G[3]>=0)
{
System.out.println(""+S1+" sur 1, "+S2+" sur 2, "+S3+" sur 3, "+S4+" sur 4");
}
}
}
}
}
Seulement ça ne teste pas toutes mes combinaisons... Ais-je mal codé une partie ?
Merci d'avance pour vos 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
14 juil. 2014 à 22:54
14 juil. 2014 à 22:54
Bonsoir,
Si les 4 poids sont dans la pièce le centre de gravité le sera forcément aussi, c'est mathématiques. De toute façon G ne dépends pas de S1, S2, S3, S4...
Si les 4 poids sont dans la pièce le centre de gravité le sera forcément aussi, c'est mathématiques. De toute façon G ne dépends pas de S1, S2, S3, S4...
parousky
Messages postés
325
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
20 février 2022
6
>
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
14 juil. 2014 à 23:44
14 juil. 2014 à 23:44
Soit, pour ce cas là il n'y a pas de problème, mais je serai amené plus tard à effectuer ces mêmes combinaisons... En gros, ma seule question est : comment calculer toutes les combinaisons possibles au centième près comme précédemment ?
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
15 juil. 2014 à 07:37
15 juil. 2014 à 07:37
Tu peux regarder ce code Énumérer un ensemble comme si on avait des boucles imbriquées
Cela reviendra finalement au même que tes 4 boucles mais en un peu plus simple.
Je compte en centièmes pour ne manipuler que des entiers :
Cela reviendra finalement au même que tes 4 boucles mais en un peu plus simple.
Je compte en centièmes pour ne manipuler que des entiers :
for (long[] s : new Enumeration(4, 25, MAX, 1, false)) System.out.printf("%d sur 1, %d sur 2, %d sur 3, %d sur 4\n", s[0], s[1], s[2], s[3]);