Signaler

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

Posez votre question Valerie54001 14Messages postés mardi 22 novembre 2016Date d'inscription 4 octobre 2017 Dernière intervention - Dernière réponse le 1 oct. 2017 à 13:08 par Valerie54001
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 ?
Utile
+0
plus moins
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 ?
Donnez votre avis
Utile
+0
plus moins
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?
Donnez votre avis
Utile
+0
plus moins
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.
Donnez votre avis
Utile
+0
plus moins
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 14Messages postés mardi 22 novembre 2016Date d'inscription 4 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.
Répondre
Donnez votre avis
Utile
+0
plus moins
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 14Messages postés mardi 22 novembre 2016Date d'inscription 4 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...
Répondre
Help-Jason 1611Messages postés mardi 28 juin 2011Date d'inscription 10 octobre 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.
Répondre
Valerie54001 14Messages postés mardi 22 novembre 2016Date d'inscription 4 octobre 2017 Dernière intervention - 1 oct. 2017 à 13:08
J'ai avancé là dessus grâce à benjamin :)
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !