AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Gewichteter Zufall
Tutorial durchsuchen
Ansicht
Themen-Optionen

Gewichteter Zufall

Ein Tutorial von Luckie · begonnen am 6. Mär 2008 · letzter Beitrag vom 10. Mär 2008
Antwort Antwort
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#1

Re: Gewichteter Zufall

  Alt 6. Mär 2008, 13:45
Was imo aus dem Artikel nicht ganz klar wird: deine Lösung benachteiligt ja nicht die Schüler, die sich oft gemeldet haben, sondern die, die sich vor kurzem gemeldet haben.
Ich denke einmal, dass es so auch gedacht war; um jedenfalls Ersteres zu erreichen, müsste jedem Schüler nur eine Auswahl-Wahrscheinlichkeit p zugeordnet werden, die bei n Schülern anfangs 1 / n beträgt. Wenn er dann nach einer Meldung z.B. nur noch halb so oft aufgerufen werden soll, muss natürlich erst einmal seine eigene Wahrscheinlichkeit p1 um 50% gesenkt und zusätzlich die Wahrscheinlichkeiten aller anderen Schüler um .5 * p1 / (n - 1) erhöht werden. Die Auswahlfunktion könnte dann so aussehen:
Delphi-Quellcode:
// Rückgabewert: Index des gewählten Eintrags
// Summe der Wahrscheinlichkeiten sollte 1 betragen
function RandomItem(aProbabilities: array of Real): Integer;
var
  r: Real;
begin
  r := Random;
  Result := 0;
  while Result < Length(aProbabilities) do
  begin
    r := r - aProbabilities[Result];
    if r < 0 then
    begin
      Dec(Result);
      Exit;
    end;
    Inc(Result);
  end;
  Dec(Result); // im Zweifelsfall der letzte Eintrag
end;
[add]
Zitat von Nikolas:
In der Aufgabenstellung wird aber verlangt, dass nur derjenige, der als letzter geantwortet hat, eine kleinere Wahrscheinlichkeit hat als alle anderen. Das ist somit nicht gegeben.
Könnte man so verstehen, aber die Aufgabenstellung ist unklar:
Zitat:
dass ein Schüler, der gerade dran gewesen ist, mit einer geringeren Wahrscheinlichkeit noch mal von dem programm ausgewählt wird, als ein Schüler, der noch keine Frage beantworten musste.
Es wird nichts über die Schüler ausgesagt, die schon einmal früher dran waren. Deshalb würde ich die Aufgabenstellung auch nicht zu wörtlich nehmen, es bleibt also ein ziemlicher Spielraum für Deutungen.
[/add]
Sebastian
Moderator in der EE
  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:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz