![]() |
Hilfe bei nem Algorythmus
Hiho, ich bin Reloaded und relativer Delphinoob.
Habe da ein Problem. Brauche nen Algorythmus der 7 zufällige Zahlen miteinander vergleicht, und wenn eine Zahl doppelt vorkommt, der diese in ne andere zufällige Zahl umändert. Das heißt am Ende sollen halt 7 verschiedene Zahlen rauskommen. Habs den ganzen Abend probiert und es ums verrecken nicht hinbekommen. Wäre nett wenn mir jemand mir helfen könnte. :) Sorry wenns ne Noobfrage ist, aber alle Ansätze von mir funzen leider nicht. |
Re: Hilfe bei nem Algorythmus
OK. Hier ein Ansatz:
Du schreibst dir eien Funktion, die dir eine Zufallszahl zurückliefert. Diese trägst du nun in ein Array mit 7 elementen ein, doch bevor du dies tust, durchläufst du das Array und kuckst, ob sie nicht schon vorhanden ist. Ist sie schon vorhanden, rufst du deine Funktion für die Zufallszahlen noch mal auf, ist sie nicht vorhanden, trägst du sie ein. |
Re: Hilfe bei nem Algorythmus
Hallo Reloaded,
ist es sowas, was Du suchst?
Delphi-Quellcode:
"Randomize" sollte vor dem Aufruf der Funktion erfolgen.
procedure CreateRandomNumbers(var A: array of Integer;
HighNumber: Integer = 49; ZeroNumber: Boolean = False); var I: Integer; function CheckDouble(const A: array of Integer; Position: Word): Boolean; var I: Integer; begin Result := False; for I := Low(A) to High(A) do begin if I = Position then Continue; if A[I] = A[Position] then begin Result := True; Break; end; end; end; begin ZeroMemory(@A, SizeOf(A)); for I := Low(A) to High(A) do begin if ZeroNumber then repeat A[I] := Random(HighNumber) + 1; until not CheckDouble(A, I) else repeat A[I] := Random(HighNumber) + 1; until (A[I] <> 0) and (not CheckDouble(A, I)); end; end; bye |
Re: Hilfe bei nem Algorythmus
Letzte Woche hattten wir die selbe Frage schonmal von jemand anders, begib dich mal auf die Suche. Läuft aber auf den Weg von Luckie hinaus.
|
Re: Hilfe bei nem Algorythmus
Hier ist der Link, den Tpercon gemeint hat. Dann musst du nicht danach suchen. :zwinker:
![]() Gruß Matze |
Re: Hilfe bei nem Algorythmus
Danke für die Hilfe, ich bastel dann mal weiter. :P
Nachtrag:So hab hier ne ganz leichte Lösung da das mit den Arrays bei mir nicht so geklappt hat, bissel umständlich aber egal :mrgreen::
Delphi-Quellcode:
[edit=Luckie]Quote-Tags durch Delphi-Tags ersetzt. Mfg, Luckie[/edit]
begin
repeat random; Zahl1 := Random(48 )+1; Label1.Caption := InttoStr(Zahl1); Zahl2 := Random(48 )+1; Label2.Caption := InttoStr(Zahl2); Zahl3 := Random(48 )+1; Label3.Caption := InttoStr(Zahl3); Zahl4 := Random(48 )+1; Label4.Caption := InttoStr(Zahl4); Zahl5 := Random(48 )+1; Label5.Caption := InttoStr(Zahl5); Zahl6 := Random(48 )+1; Label6.Caption := InttoStr(Zahl6); Zahl7 := Random(48 )+1; Label7.Caption := InttoStr(Zahl7); Ungleichheit:=True; //Zahl1 if Zahl1 = Zahl2 then Ungleichheit := False; if Zahl1 = Zahl3 then Ungleichheit := False; if Zahl1 = Zahl3 then Ungleichheit := False; if Zahl1 = Zahl4 then Ungleichheit := False; if Zahl1 = Zahl5 then Ungleichheit := False; if Zahl1 = Zahl6 then Ungleichheit := False; if Zahl1 = Zahl7 then Ungleichheit := False; //Zahl2 if Zahl2 = Zahl3 then Ungleichheit := False; if Zahl2 = Zahl4 then Ungleichheit := False; if Zahl2 = Zahl5 then Ungleichheit := False; if Zahl2 = Zahl6 then Ungleichheit := False; if Zahl2 = Zahl7 then Ungleichheit := False; //Zahl3 if Zahl3 = Zahl4 then Ungleichheit := False; if Zahl3 = Zahl5 then Ungleichheit := False; if Zahl3 = Zahl6 then Ungleichheit := False; if Zahl3 = Zahl7 then Ungleichheit := False; //Zahl4 if Zahl4 = Zahl5 then Ungleichheit := False; if Zahl4 = Zahl6 then Ungleichheit := False; if Zahl4 = Zahl7 then Ungleichheit := False; //Zahl5 if Zahl5 = Zahl6 then Ungleichheit := False; if Zahl5 = Zahl7 then Ungleichheit := False; //Zahl6 if Zahl6 = Zahl7 then Ungleichheit := False; until Ungleichheit; end; |
Re: Hilfe bei nem Algorythmus
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo
jetzt noch einmal mit Beispielprogramm ... bye |
Re: Hilfe bei nem Algorythmus
Zitat:
Wo lag denn das Problem bei den Arrays? Ist ja so echt viel zu umständlich. |
Re: Hilfe bei nem Algorythmus
Keine Ahnung. Hab ich so im Infokrus gelernt, aber wenn man es nicht braucht. Auch gut. MIt den Arrays hat irgendwie nicht gefunzt. Der hatte mir da immer massig Fehlermeldungen reingekloppt.
|
Re: Hilfe bei nem Algorythmus
Randomize solltest du beim Start (Form Create) einmal aufrufen!
Dann fang mal an mit den Fehlermeldungen! Da wird dir sicherlich auch geholfen, diese Lösung ist ja nicht wirklich zumutbar. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:34 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