Aleatoriamente escolha k bits de n de um Java BitSet

Como escolher exatamentek pedaços de umJava BitSet de comprimentom comn bits ligados, ondek≤n≤m?

Exemplo de entrada:m=20, n=11

Exemplo de saída:k=3

A abordagem ingênua

Escolha um número aleatório0≤ i ≤ m-1Se ele está ligado na entrada e não ligado na saída, ligue-o na saída, aték bits são ativados na saída.

Esta abordagem falha quandon é muito menor quem. Alguma outra ideia?

questionAnswers(4)

yourAnswerToTheQuestion