| |
|
|
 |
Autor |
Nachricht |
 |
| |
|
|
| |
| Matze |
#2| Verfasst am: 01.07.2005, 09:15 Titel: Re: random |
 |
 |
 |
|
Moderator Alter: 23 Status: offline Beiträge: 11.308 angemeldet: 07.07.2003 Wohnort: Hochdorf (BaWü) Turbo Delphi für Win32

|
Das stimmt aber schon so |
 Grüße, Matze
Wer hat denn mein Ding da hoch gemacht?
Ein Kollege |
 |
|
|
|
| |
|
ehem. Benutzer

|
Hi,
also ich hab mal ein Würfel programmiert und da hab ich's exakt so gemacht.
Bei mir funktioniert's!
Deshalb -> kA! |
|
 |
|
|
|
| |
| alcaeus |
#4| Verfasst am: 01.07.2005, 09:17 Titel: Re: random |
 |
 |
 |
|
aktives Mitglied Alter: 24 Status: offline Beiträge: 6.283 angemeldet: 11.08.2003 Wohnort: Dietersheim b. München RAD-Studio 2007 Enterprise

|
Hallo GlitterAngel87,
hast du auch einen Randomize()-Aufruf im OnCreate des Forms? Evtl. ist das das Problem
Greetz
alcaeus |
 Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de |
 |
|
|
|
| |
| Treffnix |
#5| Verfasst am: 01.07.2005, 09:19 Titel: Re: random |
 |
 |
 |
|
Mitglied Alter: 29 Status: offline Beiträge: 762 angemeldet: 25.06.2003 Wohnort: Mönchengladbach Delphi 7 Professional

|
Auch ohne Randomize dürfte keine 0 kommen. Poste doch mal die ganze Funktion. |
Zuletzt bearbeitet von Treffnix am 01.07.2005, 09:20, insgesamt 1-mal bearbeitet. |
 |
|
|
|
| |
| Matze |
#6| Verfasst am: 01.07.2005, 09:20 Titel: Re: random |
 |
 |
 |
|
Moderator Alter: 23 Status: offline Beiträge: 11.308 angemeldet: 07.07.2003 Wohnort: Hochdorf (BaWü) Turbo Delphi für Win32

|
| alcaeus hat folgendes geschrieben: | hast du auch einen Randomize()-Aufruf im OnCreate des Forms? Evtl. ist das das Problem  |
Das bewirkt doch nur, dass bei jedem Programmstart nicht die gleichen "Zufallszahlen" erzeugt werden. Das obige Beispiel sollte ohne Randomize doch genauso funktionieren. |
 Grüße, Matze
Wer hat denn mein Ding da hoch gemacht?
Ein Kollege
Zuletzt bearbeitet von Matze am 01.07.2005, 09:20, insgesamt 1-mal bearbeitet. |
 |
|
|
|
| |
| ste_ett |
#7| Verfasst am: 01.07.2005, 09:51 Titel: Re: random |
 |
 |
 |
|
Mitglied Alter: 26 Status: offline Beiträge: 465 angemeldet: 10.09.2004 Wohnort: Dülmen Delphi 7 Professional

|
Exakt.
| Zitat: |
In Delphi gibt Random eine Zufallszahl im Bereich 0 <= X < Range zurück. Wird der Parameter Range nicht angegeben, liefert Random einen Real-Wert im Bereich 0 <= X < 1.
|
"random(49)+1" liefert (0-48 ) + 1, also 1 - 49. |
 "Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!
Hey, it compiles! Ship it!
Zuletzt bearbeitet von ste_ett am 01.07.2005, 09:53, insgesamt 2-mal bearbeitet. |
 |
|
|
|
| |
|
Mitglied Alter: 21 Status: offline Beiträge: 12 angemeldet: 18.12.2004 Wohnort: Salzburg

|
das ist das ganze! und ich schwör euch: gestern sind mir sooo oft 0 gekommen, da hab ich mir gedacht, ich dreh gleich durch!
Delphi-Quellcode: | zusammenfalten | markieren | 1 · · · 5 · · · · 10 · · · · 15 · · · · 20 · · · · 25 · · 28
| procedure TForm1.BitBtn1Click(Sender: TObject);
begin
for i:= 1 to 6 do
begin
randomize;
a[i]:=random(49)+1;
end;
repeat
c:=true;
for i:= 1 to 5 do
begin
if a[i]>a[i+1] then
begin
h:=a[i];
a[i]:=a[i+1];
a[i+1]:=h;
c:=false;
end;
end;
until c;
Label1.Caption:= IntToStr(a[1]);
Label2.Caption:= IntToStr(a[2]);
Label3.Caption:= IntToStr(a[3]);
Label4.Caption:= IntToStr(a[4]);
Label5.Caption:= IntToStr(a[5]);
Label6.Caption:= IntToStr(a[6]);
end; |
|
wo kann der fehler liegen?
[edit=alcaeus]Delphi-Tags eingefuegt. In Zukunft bitte selbst machen. Danke Mfg, alcaeus[/edit] |
 -------------------------------------------------------------------------------
~*adela*~
-------------------------------------------------------------------------------
Zuletzt bearbeitet von alcaeus am 01.07.2005, 10:55, insgesamt 1-mal bearbeitet. |
 |
|
|
|
| |
| marabu |
#9| Verfasst am: 01.07.2005, 11:10 Titel: Re: random |
 |
 |
 |
|
Mitglied Status: offline Beiträge: 10.082 angemeldet: 06.04.2005 Wohnort: Limburg (Lahn) Delphi 7 Architect

|
Hallo Adela,
die Funktion Random() ist zwar ganz nützlich für das Ziehen der Lottozahlen, aber alleine schafft sie das dann doch nicht. Die Funktion Random() garantiert dir über einen ausgeklügelten mathematischen Ansatz eine ausreichend gute Gleichverteilung der Funktionswerte bei entsprechend großen Stichproben, aber sie garantiert dir keine Duplikatfreiheit bei den ersten 6 Werten.
Du wirst dir etwas überlegen müssen, damit bei der Ziehung der zweiten Zahl die erste nicht wieder Teil der Ziehungsmenge ist.
Grüße vom marabu
Ein Beispiel:
Delphi-Quellcode: | zusammenfalten | markieren | 1 · · · 5 · · · · 10 · 12
| type
TOddSet = set of byte;
var
Ziehung: TOddset;
procedure Draw(count, total: byte; var oddSet: TOddSet);
begin
oddSet := [];
while SizeOf(oddSet) < count do
oddSet := oddSet + [Succ(Random(total))];
end; |
|
|
Zuletzt bearbeitet von marabu am 01.07.2005, 11:28, insgesamt 1-mal bearbeitet. |
 |
|
|
|
| |
| Treffnix |
#10| Verfasst am: 01.07.2005, 11:12 Titel: Re: random |
 |
 |
 |
|
Mitglied Alter: 29 Status: offline Beiträge: 762 angemeldet: 25.06.2003 Wohnort: Mönchengladbach Delphi 7 Professional

|
Also ich habs gerade mal getestet und ich hatte nicht einmal ne 0. Selbst wenn ich die Range auf 1 geändert habe. Zum Lottospielen solltest du aber noch überprüfen, ob eine Zahl bereits vorkam.
Wie hast du denn die Variablen deklariert?
Habs jetzt mal so angenommen:
|
|
 |
|
|
|
| |
| r2c2 |
#11| Verfasst am: 01.07.2005, 11:26 Titel: Re: random |
 |
 |
 |
|
Mitglied Alter: 20 Status: offline Beiträge: 784 angemeldet: 09.05.2005 Wohnort: Rhoihesse Turbo Delphi für Win32

|
| glitterangel87 hat folgendes geschrieben: |
| Delphi-Quellcode: | markieren | procedure TForm1.BitBtn1Click(Sender: TObject);
begin
for i:= 1 to 6 do
begin
randomize;
a[i]:=random(49)+1;
end;
... |
|
wo kann der fehler liegen?
|
Also einen Fehler hab ich gefunden, wenn es auch IMHO nicht der ist, der ne 0 hervorbringen könnte:
Randomize sollte man im Create aufrufen und dann möglichst nie mehr. So erhälst du(außer du hast wirklich n extrem langsamen PC) 6 mal die selbe Zahl.
mfg
Christian |

Kaum macht man's richtig, schon klappts! |
 |
|
|
|
| |
| malo |
#12| Verfasst am: 01.07.2005, 14:27 Titel: Re: random |
 |
 |
 |
|
aktives Mitglied Alter: 17 Status: offline Beiträge: 1.971 angemeldet: 19.09.2004 Wohnort: Oberhausen

|
Eins noch: Randomize aus der Schleife raus! Das kommt ins OnCreate-Event des Forms |

Ceterum censeo Carthaginem esse delendam. |
 |
|
|
|
| |
| Treffnix |
#13| Verfasst am: 01.07.2005, 14:32 Titel: Re: random |
 |
 |
 |
|
Mitglied Alter: 29 Status: offline Beiträge: 762 angemeldet: 25.06.2003 Wohnort: Mönchengladbach Delphi 7 Professional

|
| malo hat folgendes geschrieben: | Eins noch: Randomize aus der Schleife raus! Das kommt ins OnCreate-Event des Forms  |
Hast du mal den Thread über deinem gelesen? |
|
 |
|
|
|
 |
|
 |
| |
|
|
| |
 
|
|