python

Anagrammes : génération d’anagrammes.

a marqué ce sujet comme résolu.

Bonjour à tous j’aimerais avoir de l’aide pour pouvoir générer des anagrammes.

def an(mot):
    i = amara
    if len(mot) == 1:
        return[mot]     
    reste = []
    for i in range(len(mot)):
        lettre = mot[i]
        rete = mot[:i] + mot[i+1:]
        ans = an(reste)
        for a in ans:
            reste.append(lettre + a)

    return reste        
+0 -0

Salut,

En lisant ton code, j’ai l’impression que tu essayes de générer l’ensemble des anagrammes d’un mot (plutôt qu’un seul comme ce qui est fait dans le lien de A-312). C’est bien ça?

Si oui, je ne comprends pas à quoi sert la ligne 2 et j’ai l’impression que tu t’es un peu mélangé entre les variables rete (drôle de nom) et reste.

+0 -0

Hum, c’est intéressant.

Ton code semble vouloir générer TOUS les anagrammes possible (sans sens).

Par-contre, il y a 2–3 erreurs.

Pourquoi la déclaration de i en première ligne ? Elle est inutile je pense.

Attention, rete et reste ne sont pas du même type ! La fonction an prend un string et retourne une liste. Ta ligne devrait être :

ans = an(rete)

Le reste du code me semble correcte ^^

Edit: Grilled :(

+0 -0

Il y a une difficulté supplémentaire, et je pense qu’elle n’est pas gérée ici. chien a 5 lettres, toutes différentes, le nombre d’anagrammes qu’on peut former à partir de ces 5 lettres est de 5x4x3x2x1=120. Et à partir du mot "amara", ce traitement donnera aussi 120 solutions, mais il y aura plein de doublons.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte