AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Zufälliger Integer-Wert zwischen zwei zahlen
Thema durchsuchen
Ansicht
Themen-Optionen

Zufälliger Integer-Wert zwischen zwei zahlen

Ein Thema von NikoMitDaMacht · begonnen am 25. Mai 2004 · letzter Beitrag vom 26. Mai 2004
Antwort Antwort
Seite 2 von 2     12   
eroe

Registriert seit: 15. Mai 2004
Ort: Brandenburg
31 Beiträge
 
#11

Re: Zufälliger Integer-Wert zwischen zwei zahlen

  Alt 25. Mai 2004, 22:48
Im Endeffekt wollten dir die ganzen Delphi-Cracks hier nur sagen, dass du mit der Funktion

randomize; den Zufallsgenerator praktisch initialisierst und mit der Funktion

random(bereich)+minimum; den Bereich angibst, in dem die Zahl liegen soll .. Weiterhin wird vom Minimum ab gezählt, sprich, wenn du eine Zahl zwischen 100 und 200 haben willst (das sind 100 Zahlen --> bereich = 100) nimmst du folgenden Befehl :

random(100)+101; // ja, eigentlich müsste das Minimum 100 sein, jedoch hat Delphi doch seine Standard-Krankheit dass immer und überall von 0 ab gezählt wird, nicht von 1 ;)
Stimmts Jungs ?
"Der ganze Rummel um die Emanzipation hat nichts daran geändert, dass Frauen sich hübsch machen um Männern zu gefallen"
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#12

Re: Zufälliger Integer-Wert zwischen zwei zahlen

  Alt 26. Mai 2004, 08:10
wie soll das denn gehen mit + minimum?

Sagen wir mal ich habe es so:

Delphi-Quellcode:
procedure irgendwas;
var
  Minimum, Maximum: integer;
  Ergebnis: integer;
begin
  Randomize;
  Minimum := 20;
  Maximum := 100;
  Ergebnis := Random(Maximum)+Minimum;
end;
So, toll, was ist wenn Random(Maximum) bereits 90 rauskommt? dann wird Minimum(20) dazugerechnet, und dann ist es ÜBER dem Maximum, nämlich 110....


Zitat:
doch für was steht das Succ
Succ(Successor) gibt dir den Nachfolger eines Elements im Typ. Pred gibt dir den Vorgänger
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Zufälliger Integer-Wert zwischen zwei zahlen

  Alt 26. Mai 2004, 08:11
Zitat von Stevie:
Random(Succ(High-Low)) + Low;
Wenn, dann geht es so.
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#14

Re: Zufälliger Integer-Wert zwischen zwei zahlen

  Alt 26. Mai 2004, 08:54
Ach, hör mal: Die Funktion Random(x) liefert dir einen zufälligen Wert. Dieser Wert ist >=0 und <x.
Wenn du jetzt eine Zahl haben willst, zwischen 80 und 100, dann lässt du dir einfach eine Zufallszahl zwischen 0 und 20 ausgeben und addierst am Ende noch 80 hinzu.
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#15

Re: Zufälliger Integer-Wert zwischen zwei zahlen

  Alt 26. Mai 2004, 09:00
Zitat von yankee:
Ach, hör mal: Die Funktion Random(x) liefert dir einen zufälligen Wert. Dieser Wert ist >=0 und <x.
Wenn du jetzt eine Zahl haben willst, zwischen 80 und 100, dann lässt du dir einfach eine Zufallszahl zwischen 0 und 20 ausgeben und addierst am Ende noch 80 hinzu.
Was meinst du denn, wasRandom(Succ(High-Low)) + Low; macht?
Wenn du also Random(20) eingibst, was kommt raus? Richtig, Zahlen im Bereich von 0-19, deshalb Succ (Nachfolger) davon plus der untere Wert.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
iaby

Registriert seit: 30. Nov 2002
Ort: BW
258 Beiträge
 
#16

Re: Zufälliger Integer-Wert zwischen zwei zahlen

  Alt 26. Mai 2004, 09:18
Delphi-Quellcode:
function zahl(von, bis: integer): integer;
begin
result:= random(bis - (von + 1)) + von + 1;
end;
funkt nur, wenn "von" kleiner als "bis" ist.
kannst ja noch ne abfrage reinmachen.
rarndomize dann halt im onCreate oder so.

gruss,
iaby
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#17

Re: Zufälliger Integer-Wert zwischen zwei zahlen

  Alt 26. Mai 2004, 09:25
Zitat von sakura:
Und ab Delphi 6

Delphi-Quellcode:
uses
  Math;

...
// function RandomRange(const AFrom, ATo: Integer): Integer;
Wert := RandomRange(1000, 2000);
......
Und hier die Definition dieser Funktion:
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;
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#18

Re: Zufälliger Integer-Wert zwischen zwei zahlen

  Alt 26. Mai 2004, 09:35
@Stevie Ist ja gut, ich wollte es ja nur verständlicher darstellen...
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#19

Re: Zufälliger Integer-Wert zwischen zwei zahlen

  Alt 26. Mai 2004, 09:39
Zitat von yankee:
@Stevie Ist ja gut, ich wollte es ja nur verständlicher darstellen...
Ich wollte nur vermeiden, dass das +/-1-Problem auftaucht, hatte ich schon oft: "Da kommt ja überhaupt nie 20 raus, obwohl ich Random(20) eingegeben habe!"
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 04:54 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