bien le bonsoir,
je ne me souviens plus de l'algo pour permuter 2 variables sans utiliser une 3ème variable. si si, je sais que c'est possible.
et je n'arrive pas à remettre la main dessus.
merci bien.
bien le bonsoir,
je ne me souviens plus de l'algo pour permuter 2 variables sans utiliser une 3ème variable. si si, je sais que c'est possible.
et je n'arrive pas à remettre la main dessus.
merci bien.
Il y a une variante avec des XORs, et une avec des opérations arithmétiques (attention aux overflows avec la seconde).
Permutation A/B :Ou :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 A <- A Xor B B <- B Xor A A <- A Xor B
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 A <- A - B B <- A + B A <- B - A
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Je ne sais pas si c'est que tu cherche, mais comme cela, ca a l'air de fonctionner:
exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 var a, var b a=a+b b=a-b a=a-b
et c'est permuté !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6a = x et b = y => a = x + y b = a - b = x + y - y = x => donc b = x a = x + y - x => a = y
<edit>
oups, le temps que je brouillone et que j'ecrive, je me suis fait devancé par Mac Lak...
</edit>
++
Pouic
Mon papy, c'est Flash et mon papa, c'est Lucky Luke...Envoyé par Pouic
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Problème récurrent
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
Var A, B : réel ; Début Lire(A,B) ; Si (A>=B) Alors A<-A-B; B<-A+B; A<-B-A; Sinon B<-B+A; A<-B-A; B<-B-A; Fsi Écrire(A,B); Fin.
Ca fait gagner de la mémoire, mais l'utilisation d'opération arithmétiques est BIEN PLUS lente.
Donc quel est réellement l'intérêt de le faire ?
Consignes aux jeunes padawans : une image vaut 1000 mots !
- Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
- Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
- ton poste tu dois marquer quand la bonne réponse tu as obtenu.
Et d'autre part, (et d'autant plus que les ordres de grandeur de A et B sont très différents) il va y avoir des erreurs de troncature lors des opérations qui feront qu'on ne retrouvera pas exactement les mêmes nombres une fois la "permutation" effectuée...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager