Generating integer random numbers from power-law distribution
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Sunstar
am 13 Dez. 2013
Beantwortet: Weijia Chen
am 18 Sep. 2019
Is there a code to generate integer random numbers through power-law distribution of the form p(x)=x^-(alpha+1)?
thanks in advance
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (3)
Miguel Ángel
am 13 Dez. 2013
Bearbeitet: Miguel Ángel
am 13 Dez. 2013
I don't know if round,ceil or floor is correct, but in case this may be a way
n=1000;
p=rand(1,n);
alpha=0.1;
%inverse of distribution
%properties of logs %LOGa(n) = LOGb(N) / LOGb(a)
%~round/ceil/floor
x=round(log(p)/log(alpha+1));
Roger Stafford
am 13 Dez. 2013
The distribution you mention is equivalent to the zeta distribution with alpha+1 replaced by s. See the website
http://en.wikipedia.org/wiki/Zeta_distribution
As Image Analyst has mentioned, there is a File Exchange contribution called 'randraw' which is located at:
http://www.mathworks.com/matlabcentral/fileexchange/7309-randraw
which claims to generate random numbers in accordance with fifty various distributions including the zeta distribution. It might be what you need.
Weijia Chen
am 18 Sep. 2019
I also meet the same problem. The minimum integer that zeta distribution can generate seems to be 1, but I hope 0 can be generated. Is there any other distributin can do this? Thank you
0 Kommentare
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!