BruteForce

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

BruteForce

Beitragvon INFACT » Freitag 20. März 2009, 16:56

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.
ein kleines game für die die lust haben http://konaminut.mybrute.com
;-)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Freitag 20. März 2009, 17:17

- 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
Benutzeravatar
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Beitragvon INFACT » Freitag 20. März 2009, 19:24

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']
ein kleines game für die die lust haben http://konaminut.mybrute.com

;-)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Freitag 20. März 2009, 19:51

INFACT hat geschrieben:
Hyperion hat geschrieben:- es gibt itertools.permutations() ;-)

Bei Python 2.5 nicht: [code=py]dir(itertools)

Ok, das ändert aber nix an den anderen Kritikpunkten ;-)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder