Ich habe eine Liste und möchte zufällig einen Knoten daraus auswählen . Da es kein Array ist, weiß ich nicht im Voraus, wie lang es ist. Gibt es eine Möglichkeit, einen Knoten nach dem Zufallsprinzip (mit gleichmäßiger Verteilung) auszuwählen ohne die ganze Liste durchsuchen zu müssen (im schlimmsten Fall) zweimal (dh um seine Länge zu erhalten) Erreichen Sie den ausgewählten Knoten, nachdem Sie seine Position zufällig ausgewählt haben)?
Hier ist der Code, den ich für meine Liste verwende:
%Vor%Wie in den Kommentaren von joop und Ilja Everilä , ich implementiert die Reservoir-Probenahme in C
%Vor%Hinweis: Weitere Informationen zur zufälligen Auswahl finden Sie hier .