Auswahl eines zufälligen Knotens aus einer Liste in C

8

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%     
Robb1 04.05.2017, 09:08
quelle

1 Antwort

1

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 .

    
Robb1 04.05.2017, 10:44
quelle

Tags und Links