RandomAscii - Durchwürfelt einen kleinen Text...

Code-Stücke können hier veröffentlicht werden.
Antworten
genrich
User
Beiträge: 91
Registriert: Sonntag 27. Juni 2004, 17:46

Ich brauchte eine Möglichkeit einen String durcheinander zu würfeln.
Das ganze sollte reproduzierbar Zufällig sein :) Also mit einem gleichen SeedWort kommt das selbe herraus.

Meine Idee ist es nun zwei Zufällige Positionen zu bestimmen (Pos1 und Pos2) und die zeichen an dieser Stelle zu tauschen.
leider hatte ich kenne ich keine Möglichkeit, das elegant zu machen. Es ist zwar ein leichtes ein Zeichen an einer bestimmten Stelle zu erhalten (Zeichen1=RndAscii[Pos1]) aber ich weiß nicht, wie man an beine bestimmten Stelle ein anderes Zeichen einfügen kann, außer die Geschichte mit "RndAscii=RndAscii[:Pos1]+Zeichen2+RndAscii[Pos1+1:]"

Code: Alles auswählen

from random import Random
def RandomAscii(RndAscii, SeedWort):
    seed=0
    for a in SeedWort: seed+=ord(a)
    rnd = Random(seed)

    max=len(RndAscii)-1
    for i in range(50):
        Pos1=rnd.randint(1,max)
        Zeichen1=RndAscii[Pos1]

        Pos2=rnd.randint(1,max)
        Zeichen2=RndAscii[Pos2]

        RndAscii=RndAscii[:Pos1]+Zeichen2+RndAscii[Pos1+1:]
        RndAscii=RndAscii[:Pos2]+Zeichen1+RndAscii[Pos2+1:]
    return RndAscii

SourceText="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
print RandomAscii(SourceText,"1234")
Als Ergebnis erhält man

Code: Alles auswählen

0AbmW56cwMJI4guzBTiC8LaNxDQqSnUyZ3Ov12rd9fVhXjkeHYopRGtsK7EPlF
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Hi!

Geht das nicht mit shuffle einfacher?

Code: Alles auswählen

from random import Random

rnd = Random("1234")
l = list("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ")
rnd.shuffle(l)
print "".join(l)
Gruß, mawe
genrich
User
Beiträge: 91
Registriert: Sonntag 27. Juni 2004, 17:46

Ach mißt... Das kannte ich nocht nicht :( Hätte ich das mal vorher gewusst :evil:
fu86
User
Beiträge: 2
Registriert: Sonntag 8. Januar 2006, 16:22

Ich hab mir erlaubt, die beiden Beiträge in das neue Wiki zu übernehmen. Falls das nicht im Interesse der Autoren ist, bitte löschen oder umändern oder aber erweitern :)

http://pythonwiki.pocoo.org/String_repr ... ar_mischen
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Schön das du es in's Forum geschafft hast! Ist eine gute Idee das in's Wiki zu packen, müßten wir eigentlich viel öfters machen. Im Forum stecken so manche Wissensschätze...

Ich hab im Wiki noch erwähnt, das der seed wichtig ist :)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten