I'm trying to generate random numbers between zero and 1 using fix(clock) but I'm having difficulties, each time I run the program I get the same numbers. Can someone please help?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
MinSec=fix(clock);
seed=100*MinSec(5)+MinSec(6);
D=seed;
a=777;
b=1444;
c=6666;
k=1:55;
D(k)=(a*D+b)*mod(c,k);
D_max=max(D(k));
R(k)=D(k)/D_max;
It was recommended that I use a while loop but I only generated one number with that.
0 Kommentare
Akzeptierte Antwort
Azzi Abdelmalek
am 3 Mär. 2013
Because mod(c,k) is a constant vector and a*D+b is a variable scalar
k*v/max(k*v)=k*v/(k*max(v))=v/max(v) which is a constant because v is a constant
1 Kommentar
Azzi Abdelmalek
am 3 Mär. 2013
Bearbeitet: Azzi Abdelmalek
am 3 Mär. 2013
Try this
D(k)=(a*c+b)*mod(seed,k)
instead of D(k)=(a*D+b)*mod(c,k);
Weitere Antworten (2)
Siehe auch
Kategorien
Mehr zu Random Number Generation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!