Afficher un message
Vieux 18/09/2007, 13h30   #2
Jean-Francois Ortolo
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Fwd: Re: fusion de deux nombres entiers...]

Bonjour

Le modérateur ne m'a pas laissé inclure l'algorithme ( voir mon
précédent message ). Donc, voici ma réponse à mon précédent message.


Cà ne marche pas.

Mettons: $n1 = 1234567 , et $n2 = 612345


A ce moment-là, la première boucle for va détecter le chiffre 6 dans
$n1 , associé au chiffre 6 dans $n2. Ensuite, $trouve2 sera égal à
false ( car 7 pas trouvé dans $n2, ensuite on repart au début de la
boucle while.

Ensuite, le chiffre 1 de $n2 ne sera pas trouvé dans $n1, puisque $k
pointe sur le chiffre 7 de $n1, donc $trouve1 == false. Et puis, lors de
la deuxième boucle for, le chiffre 7 ne sera toujours pas trouvé, donc
$trouve2 == false, donc on sort de la boucle while.

Résultat: $n3 = 6 au lieu de $n3 = 12345

Le problème est compliqué, du fait que les chiffres des deux nombres,
ne sont pas en ordre croissant. L'algorithme de fusion classique est
donc inopérant.

Si je triais ces chiffres pour chaque nombres, avec un tri indirect
et une array d'indices ( de manière à retrouver l'ordre initial après ),
le problème serait de traiter les cas où il y a plusieurs chiffres égaux
successifs, dans un nombre trié ( ou dans les deux nombres ). Cà je sais
pas faire.

J'ai sous la main mon bouquin d'algorithme 'Handbook of Algorithms
and Data Structures' de Gonnet, les autres livres que j'ai, ne traitent
pas de ce problème.

Vais voir si ce livre m'apporte un début de réponse.

Bien à vous.

Amicalement.

Jean-François Ortolo




--
Visitez mon site gratuit donnant des Statistiques
et des Historiques Graphiques sur les Courses de Chevaux:
http://www.ortolojf-courses.com
  Réponse avec citation
 
Page generated in 0,05103 seconds with 9 queries