Autor Beitrag
muzy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: So 14.09.08 13:50 
Hallo,

ich brauch eine Random Funktion, die einigen Dingen eine Höhere Wahrscheinlichkeit zuordnet.

Das brauch ich für eine Verkehrssimulation die ich erstellen soll in der Schule.

Ich möchte dort bestimmte Fahrzeugtypen einbinden, jedoch wäre es unsinnig wenn spezielle Fahrzeuge (Krankenwagen usw) die gleiche Wahrscheinlichkeit haben wie normale Autos. Deswegen wollte ich fragen ob man da vlt irgendwie eine Möglichkeit hat, die Wahrscheinlichkeit zu ändern.

Sebastian aka muzy
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 14.09.08 13:55 
Du könntest Bereiche für die einzelnen Autotypen festlegen.

Ein Beispiel: Krankenwagen: 0-2; Polizeiauto: 3; LKW: 4-8; Normaler PKW: 8-19.

Dann lässt du dir eine zufällige Zahl zwischen 0 und 19 anzeigen (Random(20)), und prüfst in einer case-Abfrage, in welchem Bereich die Zahl liegt. Also:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Zahl := Random(19);

case Zahl of
  0..2:  { Krankenwagen };
  3:     { Polizeiauto };
  4..8:  { LKW };
  8..19{ Normaler PKW };
end;

Wenn du die Zahl per Random(100) generieren lässt, kannst du sogar mit Prozentzahlen arbeiten. :idea:
muzy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: So 14.09.08 14:57 
Vielen Dank,

kann man denn in die case sachen auch sowas wie begin und end einfügen ?
nagel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 708

Win7, Ubuntu 10.10

BeitragVerfasst: So 14.09.08 15:04 
Ja.
Hättest du aber auch einfach ausprobieren können :D .
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: So 14.09.08 15:47 
Brauchst du aber afaik nicht, da der Code zwischen case: und dem nächsten case sowieso als Block betrachtet wird.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: So 14.09.08 15:58 
user profile iconJakob_Ullmann hat folgendes geschrieben:
Brauchst du aber afaik nicht, da der Code zwischen case: und dem nächsten case sowieso als Block betrachtet wird.


er meint bei den zahlen (2: ; 3: ; usw...) und bei denen braucht man, zumindest bei D7 doch noch ein Begin und ein end.

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
muzy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: So 14.09.08 16:59 
Also wäre dies hier:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
case Zahl of

1

begin
BLABLA
end;

2:

....


Möglich, oder nicht?
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: So 14.09.08 17:00 
möglich und imho sogar notwendig!

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
muzy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: So 14.09.08 17:01 
super, dann habe ich das Prinzip jetzt verstanden und kann es umsetzen - super =)

Danke =)

Sebastian