假设我正在使用二进制向量 {0,1}。我只想将 p=[0,1] 之类的输入参数作为输入参数,并具有与给定概率相对应的确切数量的零(给定向量的长度,例如“N”),我应该将它们按随机顺序排列.
例如,对于 p=0.5 和 N=8,我想要类似 [0 0 1 0 1 1 0 1] 或 [1 1 0 0 1 0 0 1] 的东西,重要的是要有 50% 的零以随机顺序。如有必要,当无法表示时(即 p=0.200034 和 N=8),它应该四舍五入。
我做了 X = (rand(1,N)<=(1-p)); 但显然它并不总是给出确切的密度。另一种解决方案是为 cicle 做一个,并使用累加器以随机顺序访问向量,但我认为应该有一个更好(更快)的解决方案。
谢谢