AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

String "mischen"

Ein Thema von FriFra · begonnen am 17. Sep 2003 · letzter Beitrag vom 26. Nov 2003
 
daniel-volk

Registriert seit: 16. Jul 2003
170 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: String "mischen"

  Alt 18. Sep 2003, 14:18
So, ich hab mal diesen Code geschrieben und auch getestet:

Delphi-Quellcode:
function TForm1.MixString(mixstr : string):string;
var i, x1, x2 : longword;
    rem1, rem2 : Char;
begin
  Case length(mixstr)>0 of
  true : begin
         Screen.Cursor := crHourGlass;
         randomize;
         x2 := Random(length(mixstr))+1;
         for i := 1 to 1000*length(mixstr)
         do begin
              x1 := Random(length(mixstr))+1;
              rem1 := Char(mixstr[x1]);
              rem2 := Char(mixstr[x2]);
              mixstr[x1] := rem2;
              mixstr[x2] := rem1;
              x2 := x1;
            end;
         result := mixstr;
         Screen.Cursor := crDefault;
         end;
  false : result := '';
  end;
end;
Die Problematik bei einem solchen Code ist immer, dass zwei Zufallszahlen zugleich generiert werden müssen. Da die dann aber fast immer gleich ausfallen, muss man den Rechner zwischendurch etwas beschäftigen. Ich hab das jetzt so gemacht, dass der Rechner immer eine Zahl der vorherigen "Ziehung" speichert. Auf diese Weise wird das Mischen überhaupt erst möglich!
Trotzdem kann ich dir nicht garantieren, dass es nicht auch bei diesem Code vorkommt, dass gleiche Zufallszahlen generiert werden, weil der Code, der zwischenzeitlich ausgeführt wird, dennoch sehr gering ist.

Soll es noch zufälliger werden, dann musst du dich mal nach dem Thema "Pseudozufallszahlen" erkundigen. Das führt dann aber zwangsläufig zu komplizierten Algorithmen und langen Generationszeiten. Zudem muss der Nutzer meistens die Maus bewegen.

MfG.
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:16 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