AGB  ·  Datenschutz  ·  Impressum  







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

Random-Frage

Ein Thema von Spiderpig_GER_15 · begonnen am 9. Aug 2008 · letzter Beitrag vom 11. Aug 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Spiderpig_GER_15
Spiderpig_GER_15

Registriert seit: 17. Mär 2008
298 Beiträge
 
Delphi 7 Personal
 
#1

Random-Frage

  Alt 9. Aug 2008, 11:33
Hi

Ich habe eine Frage zu random.
random(5); bedeutet das er zufällig eine folgender Zahlen auswählt:
0;1;2;3;4

ist es möglich,
a) dass man irgendwie eine Zahlenspanne vorgibt, also dass man sagen kann, bitte eine zufällige Zahl zwischen 2 und 5(und nicht nur zwischen null und 5) --- Und damit meine ich nicht den Trick das man einfach: random(3) + 2 schreibt)

b) kann man ausnahmen hinzufügen? z.B. random(5) ausser 3?

MfG
Spiderpig
---Zufall ist das Inkognito Gottes---
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Random-Frage

  Alt 9. Aug 2008, 11:35
Ja kann man, guck mal in der Code lib.
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#3

Re: Random-Frage

  Alt 9. Aug 2008, 11:37
Zitat von Spiderpig_GER_15:
Hi

Ich habe eine Frage zu random.
random(5); bedeutet das er zufällig eine folgender Zahlen auswählt:
0;1;2;3;4

ist es möglich,
a) dass man irgendwie eine Zahlenspanne vorgibt, also dass man sagen kann, bitte eine zufällige Zahl zwischen 2 und 5(und nicht nur zwischen null und 5) --- Und damit meine ich nicht den Trick das man einfach: random(3) + 2 schreibt)

b) kann man ausnahmen hinzufügen? z.B. random(5) ausser 3?

MfG
Spiderpig
zu a) das ist kein trick, sondern so wird es gemacht.
zu b) nein

GG
  Mit Zitat antworten Zitat
Benutzerbild von Spiderpig_GER_15
Spiderpig_GER_15

Registriert seit: 17. Mär 2008
298 Beiträge
 
Delphi 7 Personal
 
#4

Re: Random-Frage

  Alt 9. Aug 2008, 11:44
zu a) Ist ja eigentlich egal, es gibt ja diese möglichkeit

zu b) schade

aber vielleicht hat ja jemand eine Idee wie man das trotzdem machen kann ohne zuu viel aufwand
---Zufall ist das Inkognito Gottes---
  Mit Zitat antworten Zitat
Benutzerbild von Mikescher
Mikescher

Registriert seit: 3. Jun 2008
Ort: Offenburg
265 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Random-Frage

  Alt 9. Aug 2008, 11:46
zu b) kannst du einfach einen Array mit den Zahlen die du auswählen willst zum Beispiel

1,3,4,5

und dann zufällig einer von diesen mit random(4) auswählen

--> so mache ich es immer
Mike
Operation gelungen, Patient tot.

http://www.mikescher.com
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

Re: Random-Frage

  Alt 9. Aug 2008, 11:47
Hi,

- einfachste Lösung: neue Zufallszahl suchen bis die Ausnahme nicht mehr gilt (Achtung: wenn "zufällig" immer wieder diese Zahl kommt, kann dies sehr lange dauern.)

- andere Lösung: Ein Array nehmen, in dem nur die erlaubten Zahlen drin stehen, und Zugriff über Index.

Mfg
FAlter
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#7

Re: Random-Frage

  Alt 9. Aug 2008, 11:50
klar, kannst 'ne kleine abfrage machen und wenn die zahl drin ist, ggf. wieder holen oder du schiebst dir die zahlen in ne liste, wirfst raus, was du nicht brauchst und generierst mit random den index auf die liste.


kannst ja hier mal gucken
  Mit Zitat antworten Zitat
Benutzerbild von Spiderpig_GER_15
Spiderpig_GER_15

Registriert seit: 17. Mär 2008
298 Beiträge
 
Delphi 7 Personal
 
#8

Re: Random-Frage

  Alt 9. Aug 2008, 12:00
Danke


Wenn noch andere Leute wissen wollen wie man es machen kann, hier hab ich den Code dafür, ich find so ist es am einfachsten:

Delphi-Quellcode:
i:=random(10);
repeat
  k:=random(10);
until k <> i;
und schon hat man zwei Variablen i und k die mit verschiedenen Zufallszahlen zwischen null und 9 versehen sind
---Zufall ist das Inkognito Gottes---
  Mit Zitat antworten Zitat
mr_emre_d
(Gast)

n/a Beiträge
 
#9

Re: Random-Frage

  Alt 9. Aug 2008, 15:41
und hier ne function
Code:
function Random(rFrom, rTo: Integer; const rWithOut: Array of Integer ): Integer; overload;
var
  i: Integer;
  nFlag: Boolean;
begin
  repeat
    nFLag := True;
    Result := system.Random( rTo - rFrom + 1 ) + rFrom;
    for i:= low(rWithOut) to high(rWithOut) do
      if Result = integer(rWithOut[i]) then
      begin
        nFlag := False;
        break;
      end;
  until nFlag;
end;

// evt. Auruf:
random( 3, 5, [1,2,3,4] ) );
Wäre vlt. was für die Code-Library ? hehe

  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Random-Frage

  Alt 9. Aug 2008, 16:37
oder man nutzt gleich dieses hier:

Zitat von DelphiHilfe:
RandomRange:
Returns a random integer from a specified range.

Unit
Math

Category
random number routines

function RandomRange(const AFrom, ATo: Integer): Integer;

Description

RandomRange returns a random integer from the range that extends between AFrom and ATo (inclusive). RandomRange can handle negative ranges (where AFrom is greater than ATo).

To initialize the random number generator, add a single call Randomize or assign a value to the RandSeed variable before making any calls to RandomRange.
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:38 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