AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Der "Color-Code"

Ein Thema von Dragon93 · begonnen am 3. Feb 2011 · letzter Beitrag vom 6. Feb 2011
Antwort Antwort
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#1

AW: Der "Color-Code"

  Alt 4. Feb 2011, 07:24
- Randomize nur einmal im Programm aufrufen. z.B. im OnCreate des Formulars
OT:
Das hab ich schon öfter im Forum gelesen und wollte mal fragen, was dahinter steckt. Auch 'nur' DRY oder nochwas anderes?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.378 Beiträge
 
Delphi 12 Athens
 
#2

AW: Der "Color-Code"

  Alt 4. Feb 2011, 08:00
Nein, kein DRY.

Der Zufallsgenerator liefert über die Zeit eine "gleichverteilte" Zahlenmenge.
Initialisierst du ihn ständig neu (Randomize ist ja dafür da), dann kann die Verteilung ungünstig beeinflußt werden, wobei dann einige Werte viel öfters vorkommen, als Andere.
Es könnte sogar passieren, daß sich Zahlengruppen in kurzer Zeit wiederholen.

Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  i1, i2, i3, i4: Integer;
  i5, i6, i7, i8: Integer;

begin
  try
    RandSeed := 123456789; //Randomize;
    i1 := Random(100);
    i2 := Random(100);
    i3 := Random(100);
    i4 := Random(100);
    RandSeed := 123456789; //Randomize;
    i5 := Random(100);
    i6 := Random(100);
    i7 := Random(100);
    i8 := Random(100);
    WriteLn(Format('%d %d %d %d', [i1, i2, i3, i4]));
    WriteLn(Format('%d %d %d %d', [i5, i6, i7, i8]));
    ReadLn;
  except
    on E: Exception do begin
      WriteLn(E.ClassName, ': ', E.Message);
      ReadLn;
    end;
  end;
end.
Delphi-Referenz durchsuchenRandomize Delphi-Referenz durchsuchenRandSeed
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Der "Color-Code"

  Alt 4. Feb 2011, 11:15
Verstehe, danke.
RandSeed nutzt man also (wie in deinem Beispiel), wenn man Zufallszahlen reproduzieren oder einen "ganz bestimmten Zufall" haben will? Macht wahrsch. nur zu Testzwecken Sinn, da ja in den Links bzw. der Hilfe steht, dass man es keinesfalls zur Verschlüsselung verwenden soll.
Ralph
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#4

AW: Der "Color-Code"

  Alt 4. Feb 2011, 11:49
Man sollte besser von Pseudozufall (engl. pseudo random) sprechen. Der eigentliche Generator liefert immer eine feste Folge von 32-Bit Werten, insgesamt 2^32 = 4294967296. Das einzige was man mit Randseed (oder Randomize) wählt, ist die Startposition innerhalb dieser Folge.

Man sollte den Generator u.a. deshalb nicht für ernsthafte kryptographische Zwecke benutzen, weil die 2^32-Zustände einfach viel zu wenig sind (und damit in vielen Fällen dann Bruteforce-Attacken möglich sind).
  Mit Zitat antworten Zitat
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Der "Color-Code"

  Alt 4. Feb 2011, 12:39
Zeichnet sich ein ''Zufall'' nicht dadurch aus, das jede option bei jeder ziehung die selbe wahrscheinlichkeit hat und das es eben auch möglich ist immer die selbe sache zu ziehen?
(Möglich nur eben gering wahrscheinlich..)
Daher müsste doch Randomize genau das gewünschte ergebeniss bringen oder ? einen reellen zufall
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

AW: Der "Color-Code"

  Alt 4. Feb 2011, 12:48
Zeichnet sich ein ''Zufall'' nicht dadurch aus, das jede option bei jeder ziehung die selbe wahrscheinlichkeit hat und das es eben auch möglich ist immer die selbe sache zu ziehen?
(Möglich nur eben gering wahrscheinlich..)
Daher müsste doch Randomize genau das gewünschte ergebeniss bringen oder ? einen reellen zufall
Ein realer Zufall ist aber insbesondere auch nicht vorhersagbar. Das was Random() produziert ist aber vorhersagbar und deshalb nennt man das auch Pseudozufallsgenerator (PRNG)
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#7

AW: Der "Color-Code"

  Alt 4. Feb 2011, 12:54
Zeichnet sich ein ''Zufall'' nicht dadurch aus, das jede option bei jeder ziehung die selbe wahrscheinlichkeit hat und das es eben auch möglich ist immer die selbe sache zu ziehen?
(Möglich nur eben gering wahrscheinlich..)
Verstehe den Zusammenhang nicht. Was willst Du hier ziehen? In der Randomfolge kommt jede Zahl zwischen 0 und 2^32-1 genau einmal vor.
Zitat von Fussel9:
Daher müsste doch Randomize genau das gewünschte ergebeniss bringen oder ? einen reellen zufall
Randomize verwurschelt die aktuelle Zeit zu einem Randseed. Genau deshalb soll man es ja auch nicht in einer Schleife aufrufen (wenn die Zeitauflösung 1 ms ist, gibt's halt eine 1 ms lang in einer Schleife immer das gleiche Randseed)!

Geändert von gammatester ( 4. Feb 2011 um 12:58 Uhr)
  Mit Zitat antworten Zitat
Dragon93

Registriert seit: 18. Jan 2011
Ort: Nähe Verden/Aller
19 Beiträge
 
Delphi 6 Personal
 
#8

AW: Der "Color-Code"

  Alt 4. Feb 2011, 15:05
oh oh oh,
genau das habe ich mir schon gedacht das der sinn des spiel und die funktions weise nicht ganz klar ist
also fangen wir am besten einfach mal von forne an

der sinn des spiels liegt darin das der spieler auf den obrigen button "Aögorythmus berechnen" drückt und eine farbe als hintergrund bekommt die er au drücken muss (button mit der dazugehörigen farbe). beim erssten mal ist es eine frabe beim 2. mal 2 farben aber mit der 1. farbe + eine zufälleige und so weiter ich denke das sollte wohl geklärt sein

und wozu mach ich das? er wollte das spiel einfach mal haben und bisschen euch beschäftigen

und das es weit bessere methoden gibt für den gleichen code etc war mir irgend wie schon klar nur man muss ja erst mal wissen wie und ein funktionirendes programm haben

hoffe das beantwortet alles

Gruß
DragonD93

Edit:

Die Variablen haben noch gefehlt es tut mir leid also

Die variable Abfolge steht für Die Kombination die der Spieler Drücken muss
Die Variable Abgleich steht für die Kombination die der Spieler eingibt

PS: Bummi danke für den hinweis mit Case of aber den hätte ich höchstwahrscheinlich später selbst noch eingefügt
Daniel

Geändert von Dragon93 ( 4. Feb 2011 um 15:22 Uhr) Grund: Etwas über sehn
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:58 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