Un système avec 2 inconnues en Java voir plus. [Résolu]

Valerie54001 23 Messages postés mardi 22 novembre 2016Date d'inscription 13 octobre 2017 Dernière intervention - 25 avril 2017 à 16:23 - Dernière réponse : Valerie54001 23 Messages postés mardi 22 novembre 2016Date d'inscription 13 octobre 2017 Dernière intervention
- 1 oct. 2017 à 13:08
Bonjour,


Je cherche à résoudre automatiquement un système avec 2 inconnues en Java mais je n'ai aucune idée de la fonction à utiliser et ne sais même pas si elle existe pour ce type de cas.

Dans mon exemple,

1ere équation : X (M +1) est le plus proche ou égale de A par rapport à Y (N-1) ; A peut être compris entre 1 et 9 inclus.
2nde équation : Y (N +1) est le plus proche ou égale de A par rapport à X (M-1) ; A peut être compris entre 1 et 9 inclus.

Or j'aimerais donc savoir s'il y avait un moyen d'obtenir les valeurs de M et N automatiquement en posant le résultat ?
Et si oui, par quelle formule ?
Afficher la suite 

9 réponses

Répondre au sujet
KX 15089 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 14 décembre 2017 Dernière intervention - 25 avril 2017 à 18:55
0
Utile
Bonjour,

"est le plus proche ou égale de A par rapport à"
Ce n'est pas très standard, et comme la formulation n'est pas très précise on pourrait interpréter cela de plusieurs manières différentes.

Est-ce que tu as des exemple ?

Est-ce que ta deuxième équation est un deuxième exemple indépendant du premier ou c'est une partie du même système d'équation ?
Commenter la réponse de KX
Valerie54001 23 Messages postés mardi 22 novembre 2016Date d'inscription 13 octobre 2017 Dernière intervention - 25 avril 2017 à 19:20
0
Utile
Bonsoir KX,

Je vais essayer d'être plus claire.

Je suis à la recherche une équation pour trouver des valeurs possibles de M et N à partir de ces 2 situations suivantes en prenant mon problème à l'envers en connaissant lequel de X ou Y est le plus proche ou égale de A.

Sachant que X et Y sont compris entre 1 et 9 et tourne en boucle (1,2,3,4,5,6,7,8,9,1,2 etc.....)

X représente (M +1), Y représente (N -1), A une valeur connue au départ pour notre première situation, je détermine que X sera le plus proche ou égale de A.

Pour la seconde, Y représente (N +1), X représente (M -1), A une valeur connue également ,je détermine que Y sera le plus proche ou égale de A.
A ce point nous avons :
(M +1) ; (N -1) =3
(N +1) ; (M -1) =9

En utilisant la méthode du marteau/piqueur ou heuristique, car je suis capable de déterminer si X ou Y doit être la valeur la plus proche ou égale de A. j'obtiens :
M=9 et N=3 soit :
(M +1) ; (N -1) =9
(9 +1) ; (3 -1) =9
(1) ; (2) =9 sachant que 10 n'existe pas il devient 1 avec la boucle.
(1) ; (2) =9
1 est plus proche de 9 que 2.


(N +1);(M -2) =3
(3 +1);(9 -1) =3
(4) ; (8) =3
4 est plus proche de 3 que 8.

L'équation ou la formule a créée est certainement complexe car au départ, il faut déterminer lequel de X ou Y ou les 2 plus proche de la valeur A et ensuite M et N devront sortir automatiquement.

Je ne peux faire plus clair et moins complexe.


Qu'en dis-tu?
Commenter la réponse de Valerie54001
KX 15089 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 14 décembre 2017 Dernière intervention - 25 avril 2017 à 19:45
0
Utile
J'en dis que Java de base ne proposera aucune bibliothèque utile à ce genre de traitements, ce sera à base de boucles basiques mais il faudra tout faire spécifiquement pour ce besoin.

Après, je ne suis pas sûr d'avoir tout compris, à mon avis il me manque encore des éléments pour comprendre tes explications...

"A ce point nous avons : (M +1) ; (N -1) =3 (N +1) ; (M -1) =9"
J'ai pas compris d'où sortent le 3 et le 9...
"1 est plus proche de 9 que 2"
Si 10=1 alors 1 est aussi proche de 2 que de 9, non ?

À mon avis, il ne faut pas trop de poser de questions, deux valeurs à trouver entre 1 et 10, ça ne fait que 100 combinaisons possibles.
Donc tu itères sur les 100 couples et tu regardes celui qui minimise ta fonction de fitness afin d'obtenir le résultat voulu.

C'est du brute force, donc pas optimisé, mais si déjà tu arrivais à sortir un algorithme qui réponde au problème, je pourrais peut-être mieux le comprendre et voir comment l'améliorer pour la suite.
Commenter la réponse de KX
Valerie54001 23 Messages postés mardi 22 novembre 2016Date d'inscription 13 octobre 2017 Dernière intervention - 25 avril 2017 à 20:53
0
Utile
1
je vais essayer de répondre à tes interrogations:
"A ce point nous avons : (M +1) ; (N -1) =3 (N +1) ; (M -1) =9"
J'ai pas compris d'où sortent le 3 et le 9...
Les nombres 3 et 9 sont des valeurs obtenues après traitement, ce ne sont pas des valeurs misent en place par hasard.

"1 est plus proche de 9 que 2"
Si 10=1 alors 1 est aussi proche de 2 que de 9, non ?
Attention X =1 Y=2 dans le cas précis celui qui se rapproche le plus de 9 est bien le 1 en respectant la boucle (1,2,3,4,5,6,7,8,9,1,2 etc.....)

Effectivement 2 valeurs avec 100 couples mais avec 2 équations.

Comme tu le dis c'est brut de force c'est pour cela qu'il doit être réalisable cette ligne de code ou pas!

Si tu crois qu'un algorithme pourrait sortir alors je poste un nouveau topic !

KC, mon objectif est de mettre en place n équations avec n inconnues.

Au final, je détermine la priorité du résultat ainsi que A et de là M et N doivent apparaître tout seul.
Valerie54001 23 Messages postés mardi 22 novembre 2016Date d'inscription 13 octobre 2017 Dernière intervention - 29 avril 2017 à 08:38
Bon, comme il n'y a pas de réponse c'est que je n'ai pas été capable de m'exprimer correctement malgré mes efforts.
Je ferais autrement merci à ceux qui ont pris le temps d'essayer de comprendre mon souci.
ériiic se fera un plaisir de clôturer le sujet.
Commenter la réponse de Valerie54001
Help-Jason 1682 Messages postés mardi 28 juin 2011Date d'inscription 14 décembre 2017 Dernière intervention - 29 avril 2017 à 09:38
0
Utile
3
A prend une valeur d'initialisation
L une liste d'objet

# Brute force sur toutes les valeurs possibles
Pour M variant de 1 à 9
...Pour N variant de 1 à 9
... ...Calculer M + 1, N - 1
... ...Calculer N + 1, M - 1
... ...Déterminer X = distance de M + 1 à A et Y = distance de N - 1 à A.
... ...Si X < Y :
... ... ...Déterminer Y = distance de N + 1 à A et X = distance M - 1 à A.
... ... ...Si Y < X:
... ... ... ...Ajouter à L l'objet (M, N, X cas 1 et Y cas 2)
# Traitement des résultats
R premier objet de L
Pour l élément de L:
...Si X cas 1 de l < X cas 1 de R et Y cas 2 de l < Y cas 2 de R:
... ...R = l
# Fin
Afficher M et N de R
Valerie54001 23 Messages postés mardi 22 novembre 2016Date d'inscription 13 octobre 2017 Dernière intervention - 29 avril 2017 à 11:02
Bonjour Help-Jason,

Wahouu !!

Comment prépares-tu si X = Y ?

La question est : comment puis-je le mettre en pratique ? car en recherchant sur le net, je ne trouves que des logiciels pour pirater des mots de passe...
Help-Jason 1682 Messages postés mardi 28 juin 2011Date d'inscription 14 décembre 2017 Dernière intervention - 30 avril 2017 à 14:46
Dans le cas 1, il faut que X soit plus proche que Y de A. S'ils sont à la même distance et que tu veux inclure le résultat, remplace les < par <= tout simplement.

Tu peux le mettre en pratique avec beaucoup de langage de programmation si possible procéduraux. Je pense notamment à Python et au C. Dans les deux cas, je peux encore t'aider.
Valerie54001 23 Messages postés mardi 22 novembre 2016Date d'inscription 13 octobre 2017 Dernière intervention - 1 oct. 2017 à 13:08
J'ai avancé là dessus grâce à benjamin :)
Commenter la réponse de Help-Jason