{"word_count": 165, "character_count": 1093}
Je n'aime pas me faire coller par un (ancien) étudiant !... mais j'ai trouvé la solution très jolie, alors je vais en garder la trace dans mon "cahier de recherche" qu'est mon blog. La question était simple :Comment permuter les valeurs de deux variables, sans créer de variable temporaire ?On a ainsi deux variables,  et , on veut les permuter :  doit prendre la valeur de , et inversement....&#62; a=1&#62; b=2&#62; a[1] 1&#62; b[1] 2Oui, c'est possible... en utilisant l'astuce suivante&#62; a=b-a&#62; b=b-a&#62; a=a+b&#62; a[1] 2&#62; b[1] 1Amusant, non ?Mais il est possible d'utiliser plein d'autres fonctions . Moyennant parfois quelques hypothèses supplémentaires. Par exemple, si les nombres sont strictement plus grands que 1,&#62; a=5.6&#62; b=4.3&#62; a[1] 5.6&#62; b[1] 4.3on peut utiliser&#62; a=a^b&#62; b=a^(1/b)&#62; a=log(a,b)&#62; a[1] 4.3&#62; b[1] 5.6Je suppose qu'on peut continuer à creuser pour en trouver d'autres. Par contre, je n'ai pas encore réussi à généraliser sur une permutation de cycle de longueur 3 (les trois permutent vraiment tous).... je suis preneur !