How to create a random number as i asked below.
Mostrar comentarios más antiguos
Hello everyone here is my question;
i want to create a random number with 4 number of digits but it needs some speciality.I mean 1 number shouldnt repeat again.For example
2222 is wrong 1234 is correct.
it supposed to be between 1000 and 9999 and user should guess the number for example again lets say our number is; 1234 if i guess 1235 program should output +++- or if i wrote 2234 program should -++-.
Thanks for helps.
Respuestas (2)
dpb
el 3 de Jun. de 2015
doc randperm
4 comentarios
serkan yassikaya
el 3 de Jun. de 2015
James Tursa
el 3 de Jun. de 2015
x = randperm(k);
x = x(1:n);
Salaheddin Hosseinzadeh
el 3 de Jun. de 2015
Editada: Salaheddin Hosseinzadeh
el 3 de Jun. de 2015
I like James solution, it's easy. Just keep K as 9 and be aware that you probably wont have a 0 in your digits. You also don't want any repeated digits so, your smallest value will be 1234, up to 9876.
James Tursa
el 3 de Jun. de 2015
If you want the 0 possibility but not begin with 0, here are two solutions:
% Only one randperm call but solution not quite uniform distribution
x = randperm(10) - 1;
if( x(1) )
x = x(1:4);
else
x = x(2:5);
end
% Slightly more randperm calls on average, solution is uniform
x = 0;
while( x(1) == 0 )
x = randperm(10) - 1;
end
x = x(1:4);
serkan yassikaya
el 3 de Jun. de 2015
0 votos
4 comentarios
James Tursa
el 3 de Jun. de 2015
Editada: James Tursa
el 3 de Jun. de 2015
Assuming 0 means incorrect (-) and 1 means correct (+), e.g.,
% Test data
g = logical([0 1 0 1]);
mp= '-+';
s = mp(g+1);
serkan yassikaya
el 3 de Jun. de 2015
serkan yassikaya
el 3 de Jun. de 2015
serkan yassikaya
el 3 de Jun. de 2015
Categorías
Más información sobre Uniform Distribution (Continuous) en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!