AGB  ·  Datenschutz  ·  Impressum  







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

Zufallsgenerator

Offene Frage von "kwhk"
Ein Thema von Jonski · begonnen am 3. Dez 2009 · letzter Beitrag vom 30. Jan 2017
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
kenshin3672

Registriert seit: 22. Okt 2016
19 Beiträge
 
#31

AW: Zufallsgenerator

  Alt 7. Jan 2017, 13:54
Mein Lehrer hat damit wenig zu tun ^^ ist ne abituraufgabe die ich von der Schulleitung bekommen habe :3

hatte auch ne schleife anfangs drin aber die hat die werte nur immer wieder überschrieben ohne das irgendwas geliefert wurde von daher habe ich das wieder verworfen.

Danke für deine Hilfe


mit freundlichen Grüßen
kenshin3672
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#32

AW: Zufallsgenerator

  Alt 7. Jan 2017, 16:06
Naja. Man muss in der Schleife natürlich auch den aktuellen Durchgang abarbeiten.

Folgendes wird nie was
Delphi-Quellcode:
for i := 0; 1 to 5000 then
 Ini.WriteInteger('Zufallszahlen', 'Zahl1', Random(10));
Da würde man ja 5000x "Zahl1" schreiben.

Daher 'Zahl' + IntToStr(i) und alles funktioniert. Man muss nur die Zählervariable auswerten.

Ich weiß nicht ab wann TMemIniFile kompatibel ist. Aber mach doch Folgendes das sollte einen Mü schneller sein
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
 Ini: TCustomIniFile;
 i: Integer;
begin
 Ini := TMemIniFile.Create(ExtractFilePath(Application.ExeName) + 'Zufallszahlen.ini');
 
 try
  Randomize;

  // Die Variable A1 kann man sich sparen
  for i := 1 to 5000 do
   Ini.WriteInteger('Zufallszahlen', 'Zahl' + IntToStr(i), Random(10))
 finally
  Ini.UpdateFile; // <= WICHTIG (siehe unten)
  Ini.Free;
 end;
end;
Bei TIniFile wird bei "Write" immer sofort in die Datei geschrieben.
Bei TMemIniFile wird soweit ich weiß erst alles im Speicher vorbereitet und erst bei Aufruf von Ini.UpdateFile; auf die Festplatte geschrieben.

Geändert von a.def ( 7. Jan 2017 um 16:08 Uhr)
  Mit Zitat antworten Zitat
kenshin3672

Registriert seit: 22. Okt 2016
19 Beiträge
 
#33

AW: Zufallsgenerator

  Alt 29. Jan 2017, 14:59
Guten Tag,

im weiteren Verlauf der Programmierung würde ich jetzt gerne "beweisen" das ich RandSeed mit RandSeed := 1; zuweise.
also habe ich ein quellcode aus einem Forum (an der stelle nochmal danke) genutzt um den RandSeed aufzuspüren. Bei diesen quellcode gebe ich die ersten "Zufallszahlen" in ein array [0..32] und theoretisch sollte dann auch der RandSeed ausgerechnet werden.
Allerdings bekomme ich immer die fehlermeldung: Anzahl der Elemente ist von der Deklaration unterschiedlich.

Hier mal der Quellcode:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var T: TDateTime;
    C: Int64;
    S: Integer;
    W: Byte;
    H: Cardinal;
    F: Boolean;
const Start = - MaxInt;
ZF: Array[0..32] of Byte = (8, 1, 9, 1, 1, 8, 4, 0, 3, 9, 5, 0, 0, 2, 3, 1, 8, 9, 3, 7, 9, 6, 7, 6, 3, 8, 9, 5, 7, 1, 4, 7);
begin
//find start seed and "last" seed
T := Now;

RandSeed := Start;
C := 0;

repeat
  S := RandSeed;
  For H:=Low(ZF) to High(ZF) do
    begin
    W := Random(10);
    F := (W=ZF[H]);
    if not F then break;
    end;
  inc(C);
until
  (RandSeed=Start) or F;

T := Now - T;
Showmessage( 'Needed Time: ' + FormatDateTime('hh:nn:ss.zzz', T) +#13#10+
              'Needed Runs: ' + IntToStr(C) +#13#10 +
              'Last Seed: ' + IntToStr(RandSeed) +#13#10+
              'StartSeed: ' + IntToStr( S ) );
end;

end.
Fehlermeldung erfolgt beim Array.
Mein Problem ist jetzt halt denkbar einfach die Fehlermeldung und die Tatsache das ich sie nicht wegbekomme :§ würde mich über Tipps freuen.


mit freundlichen Grüßen
kenshin3672
  Mit Zitat antworten Zitat
bnreimer42

Registriert seit: 26. Mai 2013
Ort: Erlangen, Franken
126 Beiträge
 
Delphi 12 Athens
 
#34

AW: Zufallsgenerator

  Alt 29. Jan 2017, 15:10
Werte von 0 bis 32 währen nach meiner Berechnung 33 Werte.
In der Liste zähle ich 32.
Björn Reimer
  Mit Zitat antworten Zitat
kenshin3672

Registriert seit: 22. Okt 2016
19 Beiträge
 
#35

AW: Zufallsgenerator

  Alt 29. Jan 2017, 15:12
wenn das jetzt stimmt und alles behebt haste was verdient sitz da seit 2 tagen dran und versteh es nich
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#36

AW: Zufallsgenerator

  Alt 30. Jan 2017, 10:39
wenn das jetzt stimmt und alles behebt haste was verdient sitz da seit 2 tagen dran und versteh es nich
Anzahl der Elemente ist von der Deklaration unterschiedlich.

sagt doch eigentlich ganz genau was das Problem ist
Da hättest du auch auf die Idee kommen können mal nachzuzählen
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#37

AW: Zufallsgenerator

  Alt 30. Jan 2017, 11:49
Da hättest du auch auf die Idee kommen können mal nachzuzählen
Nee, Du sitzt da und fragst Dich was das soll, weil Du hast doch 32 Einträge.
Daß Du 33 durch 0..32 definiert hast, daran denkst du nicht.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
madas

Registriert seit: 9. Aug 2007
207 Beiträge
 
#38

AW: Zufallsgenerator

  Alt 30. Jan 2017, 14:21
wenn das jetzt stimmt und alles behebt haste was verdient sitz da seit 2 tagen dran und versteh es nich
Ne Suche nach der Fehlermeldung hätte es auch getan.

bazinga
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#39

AW: Zufallsgenerator

  Alt 30. Jan 2017, 14:27
Nee, Du sitzt da und fragst Dich was das soll, weil Du hast doch 32 Einträge.
Daß Du 33 durch 0..32 definiert hast, daran denkst du nicht.
Daran musst du nicht mal denken weil die Fehlermeldung dir explizit sagt, dass du mehr oder weniger Elemente im Array hast als definiert.
Und wenn dir die Fehlermeldung das schon so sagt, dann lohnt es sich wahrscheinlich nochmal nachzuzählen Also keinen Grund für 2 Tage Ratlosigkeit
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Zufallsgenerator

  Alt 30. Jan 2017, 15:15
Daran musst du nicht mal denken weil die Fehlermeldung dir explizit sagt, dass du mehr oder weniger Elemente im Array hast als definiert.
Kommt drauf an.
Tut Lazaru/FreePascal das auch?
Und ich glaube mich zu erinnern, daß ältere Delphis früher auch nicht die Anzahl genannt hatten.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


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 05:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz