How to generate a a restricted binary number

1 visualización (últimos 30 días)
Mohsen
Mohsen el 5 de Dic. de 2018
Comentada: Mohsen el 6 de Dic. de 2018
Dear friends
I would like to generate a random number include 24 bits 4 bits of 1 and 20 bits of 0. Can you help me?
Best Regards
Mohsen

Respuesta aceptada

Jan
Jan el 5 de Dic. de 2018
Editada: Jan el 5 de Dic. de 2018
What exactly is a "number include 24 bits"?
This sets 4 elements to 1 and 20 to 0:
v = zeros(1, 24);
v(randperm(24, 4)) = 1;
What is the wanted output?
result = bin2dec('0' + v)
% or
result = v * power(2, 0:23).'
Instead of creating the sum using the dot product, you can use the indices replied by randperm directly:
result = sum(2 .^ (randperm(24, 4) - 1));
I hope this was not a homework question. Otherwise it will be hard for you to submit your own solution now. But you participate in this forum for 6 years now, such that I assume that you are not in the learning phase anymore.

Más respuestas (1)

Mohsen
Mohsen el 5 de Dic. de 2018
Editada: Mohsen el 5 de Dic. de 2018
Exuce me,
There is a problem. In fact, i have a optimization algorithm and the input dimention and max and min. must be determined.
a posible state can be:
[0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0]
or
[0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0]
or...
there are four swing "1"s in this vector and total states is equal 10626(=). the vector length is 24. How do i define number dimention, max and min to derive this array?
  2 comentarios
Jan
Jan el 6 de Dic. de 2018
Editada: Jan el 6 de Dic. de 2018
I do not understand what "number dimension, max and min" means. Maximum and minimum of what? My answer includes a method to create random vectors already:
v = zeros(1, 24);
v(randperm(24, 4)) = 1;
Do you now want to create all these vectors? Then:
M = nchoosek(1:24, 4);
for k = 1:size(M, 1)
v = zeros(1, 24);
v(M(k, :)) = 1;
...
end
Mohsen
Mohsen el 6 de Dic. de 2018
I get a new idea by your post.
Thank you very much

Iniciar sesión para comentar.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by