Page 1 sur 1

[..] Générer toutes les possibilités

Posté : dim. 22 févr. 2009 19:19
par Yoyo86220
Bonjour à tous,

Voici le script que j'ai besoin:
Au démarrage une inputbox ou on peu écrire se que l'on veut et je veux que le script génère toutes les combinaisons possible.

Voici se que j'ai fait mais ça ne créé pas toute les possibilité...

Code : Tout sélectionner

$mot = InputBox("Entrer votre mot", "")
$len = StringLen($mot)
For $m = 1 To $len
    For $i = 0 To $len-2
        $Lettre_a_decal = StringMid($mot, $len-$i, 1)
        $lettre_avant = StringMid($mot, $len-$i-1, 1)
        $Lettres_apres = StringMid($mot, $len-$i+1, $len)
        $lettres_avant = StringLeft($mot, $len-$i-2)
        $mot_possible = $lettres_avant&$Lettre_a_decal&$lettre_avant&$Lettres_apres
        FileWriteLine("Password.txt", $mot_possible)
    Next
Next

Re: [..] Générer toutes les possibilités

Posté : ven. 27 févr. 2009 02:57
par Yoyo86220
Aucune idée?

Re: [..] Générer toutes les possibilités

Posté : ven. 27 févr. 2009 12:57
par jbnh
Salut,

Bon j'ai un peu cherché et j'ai pas trouvé :P Je poste quand même ce que j'ai pondu en espérant que ca donnera une idée a quelqu'un de plus compétent :

Code : Tout sélectionner

Local $random
$word = "bonjour"
$len = StringLen($word)
$Array = StringSplit($word,"")
 
For $X = 1 to $Len
    $random &= $Array[Random (1, $Array[0], 1)]
Next

Msgbox(0,"", $random)
Mon code retourne un mot composé des lettres de bonjour en random.

Re: [..] Générer toutes les possibilités

Posté : ven. 27 févr. 2009 13:09
par ani
je dois avoir un algo quelque part sur un des pc
si je comprend bien votre demande vous désirez retourner toute ls possibilitées
genre 1234 retourne 24 combinaison ?
1*2*3*4 = 24 ?

je reviend ;)

Re: [..] Générer toutes les possibilités

Posté : ven. 27 févr. 2009 14:02
par Yogui
script en provenance du forum anglais :

Code : Tout sélectionner

Local $current = 1
Local $set = 'bonjour'
While StringLen(FindPhrase($current,$set)) <= 7 
    ConsoleWrite(FindPhrase($current,$set) & @CRLF)
   $current += 1
Wend

Func FindPhrase($num, $set, $min_len=1)
    If $num = 0 Then Return ""
    Local $table = StringSplit($set,'')
    Local $set_len = $table[0]
    Local $total = 0, $i=0, $len=0, $value
    For $i = $min_len-1 To 1 Step -1
        $num += $set_len^$i
    Next
    While $total < $num
        $len+=1
        $total += $set_len^$len
    WEnd
    $total-=$set_len^$len
    While $total < $num And $len > 0
        $total += $set_len^($len-1)
        $i += 1
        If $total = $num Then
            $total -= $set_len^($len-1)
            $value &= $table[$i]
            $len-=1
            $i=0
        EndIf
        If $total > $num Then
            $total -= $set_len^($len-1)
            $value &= $table[$i]
            $len-=1
            $i=0
        EndIf
    WEnd
    Return $value
EndFunc

Re: [..] Générer toutes les possibilités

Posté : ven. 27 févr. 2009 14:19
par ani
a regarder comme çà, je suis pas sure que sa soit çà !
le script va découper le mot s'en tenir compte du mot entier , je m'explique
bonjour
=> bbbbbbb, bbbbbbo ect...

(bonjour) = 5040(combinaison)
1*2*3*4*5*6*7 et non 7^7

je reprend le 1234 = 24 combinaison en comptant le 1234

Code : Tout sélectionner

1234
1243
1342
1324
1423
1432

2134
2143
2341
2314
2413
2431

3214
3241
3124
3142
3421
3412

4321
4312
4231
4213
4132
4123
je retrouve pas mon petit algo :(
vais essayer de le refaire :o

Re: [..] Générer toutes les possibilités

Posté : ven. 27 févr. 2009 14:40
par Yogui
Effectivement alors je corrige toujours en directe du forum anglais
► Afficher le texte

ce qui bonne :
► Afficher le texte
Edit pour ajouter ce lien :

http://msdn.microsoft.com/en-us/library/aa302371.aspx

Re: [..] Générer toutes les possibilités

Posté : ven. 27 févr. 2009 14:53
par Tlem
Super le brainstorming. :lol:

Re: [..] Générer toutes les possibilités

Posté : sam. 28 févr. 2009 02:42
par ani
merci yogui :)