Géométriquement le forum Dlz9
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -21%
LEGO® Icons 10329 Les Plantes Miniatures, ...
Voir le deal
39.59 €

Aller en bas
Dlzlogic
Dlzlogic
Admin
Messages : 9511
Date d'inscription : 26/04/2019
Age : 80
Localisation : Proville
http://www.dlzlogic.com

Un algorithme intéressant. Empty 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.
Dlzlogic
Dlzlogic
Admin
Messages : 9511
Date d'inscription : 26/04/2019
Age : 80
Localisation : Proville
http://www.dlzlogic.com

Un algorithme intéressant. Empty 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.
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum