![]() |
Zufallsgenerator
Ich brauche nen zufallsgenerator, der den Inhalt von edit1 zu edit2 durcheinander wirft!
Kann mir einer helfen? :gruebel: :coder: |
Re: Zufallsgenerator
Was meinst du? Permutationen? Also zum Beispiel so:
edit1.text: wuppdi edit2.text puwipd Das ginge so:
Delphi-Quellcode:
EDIT: Mit einer kleinen Änderung ist sogar ein 1 MB String fix verarbeitet.
function MakeAnagram(str: string): string;
var I, n, r: Integer; c: Char; begin result:=str; n:=length(result); for I:=1 to n do begin r:=i+random(n-I); c:=result[I]; result[I]:=result[r]; result[r]:=c; end; end; |
Re: Zufallsgenerator
entschuldige die dumme frage aber wie kann ich die function entsprechend aufrufen? :wiejetzt:
|
Re: Zufallsgenerator
Delphi-Quellcode:
so ;)
Edit2.Text := MakeAnagram(Edit1.Text);
Gruß Neutral General |
Re: Zufallsgenerator
Liste der Anhänge anzeigen (Anzahl: 1)
Danke an beide!
Nur ein problem gibt es noch! Wenn ich etwas eintippe zb. 18d4 kommt im Ergebnis am ende immer dei 4 zb. d4df kommt im Ergebnis am ende immer das f zb. 38fsdfh? kommt im Ergebnis am ende immer das ? egal was ich tue und drücke! ...Und so weiter... :coder2: |
Re: Zufallsgenerator
Hallo Joel,
schau Dir mal diesen Thread dazu an, dort findest Du auch die Lösung zu Deinem Problem: -> ![]() Grüße Klaus |
Re: Zufallsgenerator
Da würd ich doch ne Lottoziehung bauen...
Delphi-Quellcode:
Ich nehme also einen zufälligen Wert aus dem alten string raus, tu ihn an den neuen dran und lösch ihn im alten. und das so lange, bis der alte leer ist.
function StringShuffle(s: string): string;
var i: Integer; begin Result := ''; while length(s) > 0 do begin i := Random(length(s)-1) +1; //laut Dok bis < Range, deswegen das -1 Result := Result + s[i]; Delete(s,i,1); end; end; |
Re: Zufallsgenerator
Liste der Anhänge anzeigen (Anzahl: 1)
Hab nen passenden Code gefunden :cheers: :
Delphi-Quellcode:
Hier ist das vertige Beispielprog:
function Anagram(const s: String): String;
var i, iRandom, iLast: Integer; c: Char; begin Result := s; iLast := Length(s); for i := 1 to Pred(iLast) do begin iRandom := Succ(Random(i)); c := Result[iLast]; Result[iLast] := Result[iRandom]; Result[iRandom] := c; end; end; |
Re: Zufallsgenerator
Auch das randomize; nicht vergessen gehabt?
|
Re: Zufallsgenerator
???
Delphi-Quellcode:
??? :coder:
randomize;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz