Cody

# Problem 1090. Create a random logical vector of N elements of which M are true.

Solution 273350

Submitted on 4 Jul 2013 by Dan
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Pass
%% n = 10; m = 4; y = random_binary(n,m); assert(islogical(y) && isequal(sum(y),m) && abs(std(diff(y)>0)-0.45)<0.2)

ans = 0 0 1 1 0 1 0 0 1 0

2   Pass
%% n = 1000; m = 500; y = random_binary(n,m); assert(islogical(y) && isequal(sum(y),m) && abs(std(diff(y)>0)-0.45)<0.05)

ans = Columns 1 through 16 1 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 Columns 17 through 32 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 Columns 33 through 48 0 1 1 1 0 1 1 0 1 1 1 0 0 0 0 1 Columns 49 through 64 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 Columns 65 through 80 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 Columns 81 through 96 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 Columns 97 through 112 1 1 0 1 0 0 0 0 0 1 0 0 0 0 1 0 Columns 113 through 128 1 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 Columns 129 through 144 1 0 1 1 0 1 0 0 0 0 1 0 0 1 1 1 Columns 145 through 160 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 Columns 161 through 176 1 0 0 0 1 0 1 0 1 0 1 1 1 0 0 0 Columns 177 through 192 1 1 1 1 0 1 1 0 0 0 1 1 0 0 1 1 Columns 193 through 208 1 1 1 0 0 1 1 0 1 0 1 0 1 1 0 0 Columns 209 through 224 1 1 1 1 1 1 1 0 1 0 1 1 1 0 0 0 Columns 225 through 240 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 Columns 241 through 256 1 1 0 1 1 0 1 0 1 0 0 1 1 1 1 1 Columns 257 through 272 1 0 1 1 1 0 1 1 0 1 1 0 1 0 1 1 Columns 273 through 288 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 Columns 289 through 304 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 Columns 305 through 320 0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 0 Columns 321 through 336 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 1 Columns 337 through 352 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 Columns 353 through 368 1 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 Columns 369 through 384 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 Columns 385 through 400 1 1 1 1 1 0 1 0 0 1 1 1 1 0 0 0 Columns 401 through 416 1 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 Columns 417 through 432 0 0 1 0 1 0 0 1 1 1 1 0 1 1 0 0 Columns 433 through 448 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 0 Columns 449 through 464 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 Columns 465 through 480 1 1 1 1 1 0 0 0 0 1 0 1 1 1 0 0 Columns 481 through 496 1 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 Columns 497 through 512 0 1 0 1 0 0 1 1 0 1 1 1 1 0 0 0 Columns 513 through 528 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 Columns 529 through 544 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 Columns 545 through 560 0 0 1 0 1 0 1 0 0 1 1 1 0 1 0 1 Columns 561 through 576 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 Columns 577 through 592 1 1 0 1 0 1 1 1 1 0 1 1 0 1 0 0 Columns 593 through 608 1 1 1 1 0 0 0 1 0 1 0 1 1 1 0 1 Columns 609 through 624 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 0 Columns 625 through 640 0 0 0 1 0 1 1 0 1 0 0 1 0 0 1 1 Columns 641 through 656 1 0 0 1 0 1 1 1 0 0 0 1 0 0 1 0 Columns 657 through 672 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 Columns 673 through 688 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 Columns 689 through 704 1 1 1 1 0 1 1 0 0 0 0 1 0 1 0 1 Columns 705 through 720 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 Columns 721 through 736 0 1 0 1 0 1 1 0 0 1 0 0 1 1 1 1 Columns 737 through 752 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 Columns 753 through 768 1 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 Columns 769 through 784 1 0 0 1 1 0 1 0 0 1 1 1 0 1 0 0 Columns 785 through 800 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 Columns 801 through 816 1 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 Columns 817 through 832 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 Columns 833 through 848 1 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 Columns 849 through 864 1 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 Columns 865 through 880 1 1 0 1 1 0 0 1 0 0 0 1 1 0 0 0 Columns 881 through 896 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 0 Columns 897 through 912 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 Columns 913 through 928 0 0 1 0 1 0 1 1 0 1 0 1 1 1 1 0 Columns 929 through 944 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 Columns 945 through 960 1 0 1 1 0 0 0 0 1 0 0 0 1 1 1 0 Columns 961 through 976 0 0 1 0 1 1 1 1 0 1 0 0 1 1 1 0 Columns 977 through 992 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 Columns 993 through 1000 1 1 0 1 0 0 0 0

3   Pass
%% n = 500; m = 20; y = random_binary(n,m); assert(islogical(y) && isequal(sum(y),m) && abs(std(diff(y)>0)-0.18)<0.05)

ans = Columns 1 through 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 17 through 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 33 through 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 49 through 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 65 through 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 81 through 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 97 through 112 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 113 through 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 129 through 144 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 145 through 160 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 Columns 161 through 176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 177 through 192 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 Columns 193 through 208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 209 through 224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 225 through 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 241 through 256 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 Columns 257 through 272 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 Columns 273 through 288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 289 through 304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 305 through 320 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 Columns 321 through 336 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 Columns 337 through 352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 353 through 368 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 369 through 384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 385 through 400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 401 through 416 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 Columns 417 through 432 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 Columns 433 through 448 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 Columns 449 through 464 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 465 through 480 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 Columns 481 through 496 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 Columns 497 through 500 0 0 0 0