如何在matlab中生成混合比为0.5的数字1和0?

How to generate number 1 and 0 with mixing ratio 0.5 in matlab?

Uniform Crossover 在两个 parent 之间使用固定的 mixing ratio。 与 one- and two-point crossover 不同,Uniform Crossover 使 parent 染色体能够贡献基因水平而不是片段水平。 如果混合比是 0.5,后代大约有一半来自第一个 parent 的基因,另一半来自第二个 parent.So 我需要生成像

这样的掩码

掩码 1: 0 1 1 0 0 0 1 1 0 1 0

掩码 2: 1 0 0 1 1 1 0 0 1 0 1

这里混合比0.5。所以我需要用 0.5.

的混合比生成 0 和 1 我在 matlab 中这样尝试过:

 mask1=round(rand(1,IndLength));//IndLength=10 suppose
 mask2=not(mask1);

并且它没有给出混合比为 0.5 的 0 和 1 所有 time.Is 有什么办法可以在 matlab 中生成混合比为 0.5 的随机数? ?

随机排列1到IndLength之间的数,然后把IndLength/2以上的每一个数都当成1

randperm(IndLength)>IndLength/2

对于奇数,这个解总会有一个额外的0