@elemente=Liste aller Elemente, ergänzt mit 0en auf 2^n Elemente; $gesammtzahl=Aufsummierte wahrscheinlichkeiten; { my $schrankenbilden=0; for(@elemente) { $schrankenbilden+=$_->[0];$_->[2]=$schrankenbilden } } ### Element auswählen my $sprungvar=@elemente/2-1; my $schritt=@elemente/4; my $ziel=rand $gesammtzahl; while($schritt>1){ if($elemente[$sprungvar]->[2]>$ziel) { $sprungvar-=$schritt; }else{ $sprungvar+=$schritt; } $schritt/=2; }