Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi zufall generell für eine zahl... (https://www.delphipraxis.net/56385-zufall-generell-fuer-eine-zahl.html)

mosquito 4. Nov 2005 20:59


zufall generell für eine zahl...
 
Hiho Leutz, ich schon wieder
kann mir mal bidde bidde jemand ein code sagen, bei dem ich einer variablen einen zufallswert zuweise, DER IN EINEM BESTIMMTEN BEREICH liegt,
tya ich habs schon mit der hilfe versucht, bin aba noch relativ neu bei Delphi und komm damit noch nicht so klar, also bidde bidde helft mir

himitsu 4. Nov 2005 21:04

Re: zufall generell für eine zahl...
 
Delphi-Referenz durchsuchenRandomRange?

Delphi-Quellcode:
function RandomRange(const AFrom, ATo: Integer): Integer;
Zitat:

Zitat von Die OH
Unit Math

Beschreibung

RandomRange gibt einen zufälligen Integer-Wert im Bereich von AFrom bis ATo zurück (inklusive). RandomRange funktioniert auch mit negativen Bereichen (wenn AFrom größer als ATo ist).

Um den Zufallszahlengenerator zu initialisieren, müssen Sie vor dem Aufruf von RandomRange die Prozedur Randomize aufrufen oder der Variable RandSeed einen Wert zuweisen.


BenjaminH 4. Nov 2005 21:12

Re: zufall generell für eine zahl...
 
Oder, wenn man es selbst machen will, einfach das:
Delphi-Quellcode:
i:=Random(1000)+1;//eine Zahl von 1 bis Tausen, also beide darin enthalten
i:=Random(1995)+5;//Ergibt eine Zahl von 5 bis 2000
i:=Random(x) Ergibt einen Wert, für den gilt 0<=i<x
i:=Random(x)+y Durch die Addition dahinter sieht das ganze halt so aus:
y<=i<x+y

Grishnak 4. Nov 2005 21:28

Re: zufall generell für eine zahl...
 
RandomRange(a, b) gibt meines Wissens eine Zufallszahl von a bis b-1 zurück und nicht von a bis b. Die OH ist in diesem Fall falsch! Bitte berichtigt mich, wenn ich mich irre!

DGL-luke 4. Nov 2005 21:35

Re: zufall generell für eine zahl...
 
jup. habe ich auch erst heute erfahren nmüssen.

himitsu 4. Nov 2005 21:40

Re: zufall generell für eine zahl...
 
Eigentlich sollte die Hilfe stimmen?

jedenfalls wenn ich mir denCode so ansehe :roll:

Delphi-Quellcode:
function RandomRange(const AFrom, ATo: Integer): Integer;
begin
  if AFrom > ATo then
    Result := Random(AFrom - ATo) + ATo
  else
    Result := Random(ATo - AFrom) + AFrom;
end;
fals dein RandomRange falsch ist, dann kannst'e ja das nehmen ^^

Grishnak 4. Nov 2005 21:51

Re: zufall generell für eine zahl...
 
Eben wenn ich mir diesen Code anschaue, sehe ich, warum er falsch ist!

Bsp.: AFrom = 2, ATo = 100 --> Random(100-2)+2 = Random(98)+2
Random(98) spuckt aber Zahlen von 0 bis 97 aus!

Richtig wäre wohl:
Delphi-Quellcode:
function RandomRange(const AFrom, ATo: Integer): Integer;
begin
  if AFrom > ATo then
    Result := Random(AFrom - ATo + 1) + ATo
  else
    Result := Random(ATo - AFrom + 1) + AFrom;
end;

himitsu 4. Nov 2005 23:01

Re: zufall generell für eine zahl...
 
ohh, war mir garnich aufgefallen -.-''
(welch ein Glück, das ich dieses fehlerhafte Teil noch nie selber verwendet hab ^^)

Du kannst dich ja mal an Borland wenden und denen das sagen :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:21 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