BruteForce

Code-Stücke können hier veröffentlicht werden.
Antworten
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Hallo,

Ich habe mal ein BruteForce Programm geschrieben, naja schaut selbst

Code: Alles auswählen

def Permutation(nummer, string):
    """Der Teil des Programms, der die Zeichen rekusiv ausgibt"""
    if nummer:  #weil es rekursiv ist
        for rest in Permutation(nummer-1, string):
            for teil in string:    #für jedes "ding in string
                yield rest + [teil]  
    else:   
        yield []

def brute(string):
    """Das Eigentliche Programm, dass mit einer while schleife die länge
des ausgegebenes strings vergrößert, wenn es einmal durchgelaufen ist"""
    zahl=1
    while 1:
        for kombination in Permutation(zahl, list(string)): #zahl für die länge des Strings, list(string) damit jedes zeichen einzeln ausgegeben wird.
            print ''.join(kombination) # gibt den string aus
        zahl+=1 #erhöht den Zähler um 1, damit das nächst mal zahl+1 zeichen ausgegeben werden


"""
Beispiel:
>>> brute("abc")

Ich habe das nicht ganz selber geschrieben aber fast alles... XD
Zuletzt geändert von INFACT am Freitag 20. März 2009, 19:33, insgesamt 4-mal geändert.
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

- Fehler bei den Code-Tags! Dadurch unbrauchbarer Code!

- kein PEP8

- brute() terminiert nicht! (ohne es getestet zu haben!)

- es gibt itertools.permutations() ;-)

- keine Kommentare oder Erklärungen
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Hyperion hat geschrieben:- es gibt itertools.permutations() ;-)
Bei Python 2.5 nicht:

Code: Alles auswählen

dir(itertools)
['__doc__', '__name__', 'chain', 'count', 'cycle', 'dropwhile', 'groupby', 'ifilter', 'ifilterfalse', 'imap', 'islice', 'izip', 'repeat', 'starmap', 'takewhile', 'tee']
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

INFACT hat geschrieben:
Hyperion hat geschrieben:- es gibt itertools.permutations() ;-)
Bei Python 2.5 nicht:

Code: Alles auswählen

dir(itertools)
[/quote]
Ok, das ändert aber nix an den anderen Kritikpunkten ;-)
Antworten