Wählen Sie aus einem Java-BitSet zufällig k Bits aus n aus

Wie man genau auswähltk Bits von aJava BitSet der Längem mitn Bits eingeschaltet, wok≤n≤m?

Beispiel Eingabe:m=20, n=11

Beispielausgabe:k=3

Der naive Ansatz

Wähle eine Zufallszahl0≤ i ≤ m-1.wenn es am Eingang und nicht am Ausgang eingeschaltet ist, schalten Sie es am Ausgang ein, bisk Bits sind am Ausgang eingeschaltet.

Dieser Ansatz schlägt fehl, wennn ist viel kleiner alsm. Irgendwelche anderen Ideen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage