AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Exponentialfunktion Warscheinlichkeit
Thema durchsuchen
Ansicht
Themen-Optionen

Exponentialfunktion Warscheinlichkeit

Ein Thema von Jonas Shinaniganz · begonnen am 1. Sep 2013 · letzter Beitrag vom 2. Sep 2013
Antwort Antwort
Benutzerbild von Jonas Shinaniganz
Jonas Shinaniganz

Registriert seit: 30. Aug 2011
249 Beiträge
 
Delphi XE5 Ultimate
 
#1

Exponentialfunktion Warscheinlichkeit

  Alt 1. Sep 2013, 20:23
Hi Forum, ich habe ein bisschen "rummprogrammiert" und habe grade ein kleines Problem.

In einer Funktion findet exponentielles Wachstum statt, soll heißen:

Eine Funktion ruft sich selbst 9 mal Rekursiv auf.
Mit jedem Aufruf ist die Warscheinlichkeit 50%, dass der rekursive Aufruf auch tatsächlich ausgeführt wird.
Jeder geglückte Aufruf hat wieder 9 Aufruf-Versuche zur Folge, von denen dann ja logischerweise ca 9 * 4,5 = 40,5 klappen.
Dies geht immer so weiter. 40,5 * 4,5 ...

Ich will, dass das Wachstum aber langsam zurück geht, also keine konstanten 50%. Der Wert soll immer unwarscheinlich (kleiner) werden je tiefer die Rekursionsstufe ist.

Wie genau heißt die Mathematik, welche ich für sowas brauche?

Viele Gruße!
Die Leiter der Entwicklungsabteilung dreht total am Mausrad!
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: Exponentialfunktion Warscheinlichkeit

  Alt 1. Sep 2013, 20:56
Wie genau soll die Wahrscheinlichkeit abnehmen? 50,30,20%? Folgender Ansatz ist anpassbar:

Delphi-Quellcode:
Const
  propability : Array [0..8] if double = (1,2,4,8,16,32,64,128,256,-1)

procedure RecursiveCall (level : Integer);
var
  i : Integer;

Begin
  if propability[level]<0 then exit;
  for i:=0 to 8 do
    if random(propability[level])=0 then
      RecursiveCall(level+1);
end;
// Aufruf
RecursiveCall(0);
Beim ersten Aufruf ist die Wahrscheinlichkeit 50%, danach 25% usw. Du kannst das Array anpassen, wie Du willst.
  Mit Zitat antworten Zitat
Benutzerbild von Jonas Shinaniganz
Jonas Shinaniganz

Registriert seit: 30. Aug 2011
249 Beiträge
 
Delphi XE5 Ultimate
 
#3

AW: Exponentialfunktion Warscheinlichkeit

  Alt 1. Sep 2013, 20:59
Grade läuft dieses TV Duell, danke schonmal Ich melde mich gleich
Die Leiter der Entwicklungsabteilung dreht total am Mausrad!
  Mit Zitat antworten Zitat
silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#4

AW: Exponentialfunktion Warscheinlichkeit

  Alt 1. Sep 2013, 21:51
Delphi-Quellcode:
propability : Array [0..8] if double = (1,2,4,8,16,32,64,128,256,-1)
[...]
 if random(propability[level])=0 then
Beim ersten Aufruf ist die Wahrscheinlichkeit 50%, danach 25% usw. Du kannst das Array anpassen, wie Du willst.
Entschuldige, wenn ich so blöd frage, aber ist im zweiten Durchlauf nach Deinem Array die Wahrscheinlichkeit nicht 50%, anstatt, wie Du sagtest 25% und im ersten Durchlauf wäre die Wahrscheinlichkeit doch 100%?

y := Random(x) liefert doch Zahlen im Bereich 0 <= y < x

Müsste das Array nicht so lauten, wenn sich die Wahrscheinlichkeit pro Level immer halbieren soll
propability : Array [0..8] if double = (2,5,9,17,33,65,129,257,-1)
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat
Benutzerbild von Jonas Shinaniganz
Jonas Shinaniganz

Registriert seit: 30. Aug 2011
249 Beiträge
 
Delphi XE5 Ultimate
 
#5

AW: Exponentialfunktion Warscheinlichkeit

  Alt 1. Sep 2013, 23:30
Hmmm das trifft es irgendwie nicht so ganz:

Hab es mal in Form von Rauten, welche in sich selbst gezeichnet werden, veranschaulicht:
- Er bricht ab der 4ten Rekursionstiefe ab
- Bis dahin immer 50% Chance auf Aufruf

soruce:
Raute.zip
exe:
Raute1.zip

Was ich beschreiben möchte, ist ein irgendwie gearteter Zerfallsprozess.. So wie er auch in der Natur vorkommt.
Die Leiter der Entwicklungsabteilung dreht total am Mausrad!

Geändert von Jonas Shinaniganz ( 1. Sep 2013 um 23:58 Uhr)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: Exponentialfunktion Warscheinlichkeit

  Alt 2. Sep 2013, 08:11
Entschuldige, wenn ich so blöd frage, aber ist im zweiten Durchlauf nach Deinem Array die Wahrscheinlichkeit nicht 50%, anstatt, wie Du sagtest 25% und im ersten Durchlauf wäre die Wahrscheinlichkeit doch 100%?
Natürlich. Es war spät... Aber das..
Müsste das Array nicht so lauten, wenn sich die Wahrscheinlichkeit pro Level immer halbieren soll
propability : Array [0..8] if double = (2,5,9,17,33,65,129,257,-1)
Stimmt nicht, denn im Level #1 würdest Du Zufallszahlen von 0..4 erstellen, was 20% ergibt, danach von 0..8, was.. äh. 100/9 % entspricht...
Richtig wäre, alle Einträge im propability-Array um eine Stelle nach links zu verschieben.

Hmmm das trifft es irgendwie nicht so ganz:
Ich glaube schon, denn Du kannst die Wahrscheinlichkeit für die einzelnen Rekursionsebenen ja konfigurieren...
- Er bricht ab der 4ten Rekursionstiefe ab
- Bis dahin immer 50% Chance auf Aufruf
Entspricht zwar nicht deinen Eingangspost, aber egal. Das Array ist dann eben:
propability : Array [0..4] if double = (2,2,2,2,-1)

Geändert von Furtbichler ( 2. Sep 2013 um 08:28 Uhr)
  Mit Zitat antworten Zitat
silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#7

AW: Exponentialfunktion Warscheinlichkeit

  Alt 2. Sep 2013, 10:12
Stimmt nicht, denn im Level #1 würdest Du Zufallszahlen von 0..4 erstellen, was 20% ergibt, danach von 0..8, was.. äh. 100/9 % entspricht...
Whoops, wie schaffe ich es immer und immer wieder, einen kapitalen Fehler in meine Posts zu hauen? Da gibt es nur eine Ausrede:
Natürlich. Es war spät...
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  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 21:11 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