如何创建随机二进制数与固定数量的1和0 ?

4视图(30天)
Camie
Camie 2022年7月22日
回答: 沃斯 2022年7月22日
你好,我需要帮助创建一个随机二进制数(30)的长度,但应该有只有四个“1”。
如果有人能帮我在这个升值。
谢谢你!

答案(2)

默罕默德·萨米
默罕默德·萨米 2022年7月22日
你可以试试以下。
bin_len = 30;
num_1 = 4;
n = 100;
binfunc = @(~)和(pow2 (randperm (bin_len num_1) 1));
bnout = arrayfun (binfunc 1: n)
bnout = 1×100
69238785 67239960 137363712 536871682 137363712 67239960 69238785 541074432 18690 541074432 270794760 1056898 553648164 1056898 270794760 541074432 35655681 274688 98376 35655681 537935904 6292224 266306 6292224 537935904 35655681 68157824 159391744 68157824 75530248
dec2bin (bnout (1)、bin_len)
ans =“000100001000001000000000000001”

沃斯
沃斯 2022年7月22日
bin_len = 30;
num_1 = 4;
%初始化数值向量30 0
bin_len bnout = 0 (1);
%的在4随机指标
bnout (randperm (bin_len num_1)) = 1;
disp (bnout)
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
%如果你想要一个字符(而不是数字)向量
bnout = char (bnout +' 0 ');
disp (bnout)
000100001000000010000000100000

类别

找到更多的在随机数生成帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!