AGB  ·  Datenschutz  ·  Impressum  







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

Wahrscheinlichkeit bestimmen

Ein Thema von PierreB · begonnen am 26. Dez 2005 · letzter Beitrag vom 26. Dez 2005
Antwort Antwort
PierreB
(Gast)

n/a Beiträge
 
#1

Wahrscheinlichkeit bestimmen

  Alt 26. Dez 2005, 10:37
Moin,

folgendes Problem: Per Random erzeuge ich ganz normale Zahlen von 0-4. Wenn der Zufall eine 0-2 generiert hat man verloren, bei einer 3-4 hat man gewonnen. Klappt auch alles gut soweit. Jetzt wollte ich die Wahrscheinlichkeit das man gewinnt oder verliert etwas beeinflussen, sodass die Wahrscheinlichkeit das man gewinnt höher ist. Also dachte ich mir beeinflusse ich einfach den Random-Aufruf:
Delphi-Quellcode:
function Wahrscheinlichkeit(x : Single) : Single;
begin
 result := Random(5 div x)
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
edit2.Text := FloatToStr(Wahrscheinlichkeit(StrToFloat(edit1.Text)));
end;
Zuerst hatte die Funktion Wahrscheinlichkeit einen Rückgabewert vom Typ Integer, hab ich dann x zum Beispiel den Wert 1 zugewiesen kam auch nur 0-2 heraus. Da ich aber möchte das 3-4 kommt muss ja x < 1 sein, also hab ich einen Rückgabewert vom Typ Single bestimmt. Beim Compilieren sagt mir nun Delphi "[Fehler] Unit2.pas(30): E2015 Operator ist auf diesen Operandentyp nicht anwendbar". Wo liegt mein Fehler, oder wie beeinflusst man die Wahrscheinlichkeit von Random ? Irgendwie steh ich mal wieder auf dem Schlauch...

Danke und schöne Feiertage noch,
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#2

Re: Wahrscheinlichkeit bestimmen

  Alt 26. Dez 2005, 10:41
Die Operatoren div und mod sind ausschließlich auf ganzzahlige Typen anwendbar und liefern auch immer ein ganzzahliges Ergebnis. Single ist aber nichtmal ordinal.
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#3

Re: Wahrscheinlichkeit bestimmen

  Alt 26. Dez 2005, 10:46
Zitat von tommie-lie:
Die Operatoren div und mod sind ausschließlich auf ganzzahlige Typen anwendbar und liefern auch immer ein ganzzahliges Ergebnis. Single ist aber nichtmal ordinal.
Ah ok, dumme Frage, wie dividiert man denn nicht ganzzahlige Zahlen ?
  Mit Zitat antworten Zitat
Benutzerbild von Chegga
Chegga

Registriert seit: 5. Nov 2004
Ort: Kirchheim
453 Beiträge
 
Delphi 7 Architect
 
#4

Re: Wahrscheinlichkeit bestimmen

  Alt 26. Dez 2005, 10:49
Hi,

mit /.

MfG Marc
Marc P.
Grüße aus Kirchheim Teck
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#5

Re: Wahrscheinlichkeit bestimmen

  Alt 26. Dez 2005, 10:53
Zitat von Chegga:
Hi,

mit /.
Moin Marc,

hatte ich als erstes probiert, dann bringt mir Delphi seltsamerweise den Fehler "[Fehler] Unit2.pas(30): E2250 Es gibt keine überladene Version von 'Random', die man mit diesen Argumenten aufrufen kann"....
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Wahrscheinlichkeit bestimmen

  Alt 26. Dez 2005, 10:54
Warum nicht einfach so:
Delphi-Quellcode:
 
prob:= real; aus [0;1]
prob:= 0.6;
if random > prob then showmessage('Ereigniss eingetreten');
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#7

Re: Wahrscheinlichkeit bestimmen

  Alt 26. Dez 2005, 11:03
if random > prob then showmessage('Ereigniss eingetreten'); So wäre es zwar möglich, ist aber nicht unbedingt das was ich wollte. Ich möchte die per Random erzeugte Zahl direkt in ihrer Wahrscheinlichkeit beeinflussen, und das muss doch irgendwie möglich sein, oder ?

Trotzdem danke.
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#8

Re: Wahrscheinlichkeit bestimmen

  Alt 26. Dez 2005, 11:04
Zitat von PierreB:
dann bringt mir Delphi seltsamerweise den Fehler "[Fehler] Unit2.pas(30): E2250 Es gibt keine überladene Version von 'Random', die man mit diesen Argumenten aufrufen kann"....
Das ist nicht seltsam, das ist normal, denn es gibt keine Version von Random(), die man mit Fließkommawerten aufrufen kann. Entweder Integer, oder gar kein Parameter.
Übrigens erhöhst du mit deiner Rechnung auch die Zahl der möglichen Ergebnisse, wenn du nur auf 3 oder 4 prüfst, gehen alle mit 5, 6 oder mehr verloren.
Nikolas' Vorgehen ist das richtige, um eine beliebige Wahrscheinlichkeit zu erzeugen.

Edit:
Zitat von PierreB:
Ich möchte die per Random erzeugte Zahl direkt in ihrer Wahrscheinlichkeit beeinflussen
Du könntest ein Galton-Brett simulieren, oder ganz einfach bestimmten Bereichen zwischen 0 und 1 verschiedene Ganzzahlen zuweisen.
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#9

Re: Wahrscheinlichkeit bestimmen

  Alt 26. Dez 2005, 11:07
Zitat:
denn es gibt keine Version von Random(), die man mit Fließkommawerten aufrufen kann.
Hm ok, schade eigentlich. Aber gut, dann mach ichs so wie von Toxman vorgeschlagen, wenns nicht direkt mit Random geht.

Also vielen Dank an alle.
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:36 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