이진 벡터 {0,1}을 사용한다고 가정합니다. 그냥 p = [0,1]과 같은 입력 인자를 넣고 주어진 확률 (벡터의 길이가 주어지면 'N')에 해당하는 0의 정확한 수를 갖기를 원합니다. 나는 그것들을 무작위로 가져야합니다. 주문.확률 밀도가 지정된 이진 벡터
예를 들어, p = 0.5 및 N = 8 인 경우 [0 0 1 0 1 1 0 1] 또는 [1 1 0 0 1 0 0 1]과 같은 값을 가지므로 중요한 점은 무작위 순서로 0의 50 %. 필요한 경우 표현이 가능하지 않을 때 반올림해야합니다 (예 : p = 0.200034 및 N = 8).
나는 X = (rand (1, N) < = (1-p)); 하지만 분명히 정확한 밀도를주지는 않습니다. 또 다른 해결책은 cicle을 사용하고 누적 기 (accumulator)를 사용하여 임의의 순서로 벡터를 방문하는 것이지만 더 나은 (더 빠른) 솔루션이되어야한다고 생각합니다.
감사
두 가지 모두 좋은 해결책이지만, 나는 구현 한 것이므로 이것을 선택한다. 고맙습니다! –