Un algorithme intéressant.
Lun 10 Avr - 16:15
Bonjour,
Gbzm a proposé un algorithme intéressant : trouver le rang d'un ensemble de participants identifiés par leur numéro d'ordre.
Je rappelle pour mémoire la méthode employée par Gbzm (si je l'ai bien comprise) le rang est déterminé par une différence de deux nombres obtenus par la fonction "comb".
Voilà ce que je propose. On initialise une chaine de caractères de la longueur de la liste des participants à 0 (zéro).
Pour chaque participant de l'ensemble désigné, on note 1 dans la chaine, suivant son numéro.
On obtient un nombre en binaire qu'il suffit de transformer en entiers. La seule difficulté est que les nombres entiers dans les langages comme le C sont limités. Il est donc nécessaire d'avoir une fonction qui traite des "grands nombres".
L'opération inverse est immédiate.
Gbzm a proposé un algorithme intéressant : trouver le rang d'un ensemble de participants identifiés par leur numéro d'ordre.
Je rappelle pour mémoire la méthode employée par Gbzm (si je l'ai bien comprise) le rang est déterminé par une différence de deux nombres obtenus par la fonction "comb".
Voilà ce que je propose. On initialise une chaine de caractères de la longueur de la liste des participants à 0 (zéro).
Pour chaque participant de l'ensemble désigné, on note 1 dans la chaine, suivant son numéro.
On obtient un nombre en binaire qu'il suffit de transformer en entiers. La seule difficulté est que les nombres entiers dans les langages comme le C sont limités. Il est donc nécessaire d'avoir une fonction qui traite des "grands nombres".
L'opération inverse est immédiate.
Re: Un algorithme intéressant.
Lun 10 Avr - 16:31
Mon avis sur le code de Gbzm.
Je ne sais pas comment Python calcule le nombre de combinaisons. Il y a certainement des astuces, utilisation de la formule de Stirling, ce serait intéressant de le savoir.
La fonction "indice" est récursive. C'est une méthode assez dangereuse en informatique, puisqu'elle risque de provoquer un dépassement de capacité. Personnellement, je ne l'utilise que dans des cas bien particuliers.
Je ne sais pas comment Python calcule le nombre de combinaisons. Il y a certainement des astuces, utilisation de la formule de Stirling, ce serait intéressant de le savoir.
La fonction "indice" est récursive. C'est une méthode assez dangereuse en informatique, puisqu'elle risque de provoquer un dépassement de capacité. Personnellement, je ne l'utilise que dans des cas bien particuliers.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|