Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

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

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