Seleccionar aleatoriamente k bits de n desde un Java BitSet

Cómo elegir exactamentek bits de unJava BitSet de longitudm conn bits encendidos, dondek≤n≤m?

Ejemplo de entrada:m=20, n=11

Ejemplo de salida:k=3

El enfoque ingenuo.

Elige un número al azar0≤ i ≤ m-1.si está activada en la entrada y no activada en la salida, enciéndala en la salida, hasta quek los bits se activan en la salida.

Este enfoque falla cuandon es mucho más pequeño quem. ¿Alguna otra idea?

Respuestas a la pregunta(4)

Su respuesta a la pregunta