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
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?