Нет, это не странно.Это вероятность для вас.
Если вы подбрасываете монету 100 раз, вы не всегда получаете 50 голов и 50 хвостов.Иногда вы получаете 49 и 51, и в этом редком случае вы можете получить один и тот же 100 раз.
С вашим кодом выше, вы не гарантированно получите 20 нулей и 80, когда noOfNodes
равно 100. Если вы хотите сгенерировать вектор, который всегда имеет 20% нулей, но со случайным упорядочением нулей и единиц, то вы можете сделать это, используя функцию RANDPERM примерно так:
operation = [zeros(1,20) ones(1,80)]; %# Fill the vector with 0 and 1
operation = operation(randperm(100)); %# Randomly reorder it
Если вы хотите сгенерировать вектор с нулями от 0% до 20%, вы можете изменить приведенный выше код, используя функцию RANDI :
operation = [randi([0 1],1,20) ones(1,80)];
operation = operation(randperm(100));