Chciałem przeprowadzić rzeczywistą symulację jako uzupełnienie (słusznie) zaakceptowanej odpowiedzi . Chociaż w R, kod jest tak prosty, że jest (pseudo) -pseudokodem.
Jedna malutka różnica między Wolfram MathWorld formula w przyjętym odpowiedź i inne, być może bardziej powszechne, równania jest fakt, że prawo wykładnik mocn
(która jest zazwyczaj oznaczona jako alfa) nie niesie wyraźny znak ujemny. Dlatego wybrana wartość alfa musi być ujemna, a zwykle pomiędzy 2 a 3.
x0
i x1
oznaczają dolną i górną granicę rozkładu.
Więc to jest tutaj:
x1 = 5 # Maximum value
x0 = 0.1 # It can't be zero; otherwise X^0^(neg) is 1/0.
alpha = -2.5 # It has to be negative.
y = runif(1e5) # Number of samples
x = ((x1^(alpha+1) - x0^(alpha+1))*y + x0^(alpha+1))^(1/(alpha+1))
hist(x, prob = T, breaks=40, ylim=c(0,10), xlim=c(0,1.2), border=F,
col="yellowgreen", main="Power law density")
lines(density(x), col="chocolate", lwd=1)
lines(density(x, adjust=2), lty="dotted", col="darkblue", lwd=2)

lub wykreślono w skali logarytmicznej:
h = hist(x, prob=T, breaks=40, plot=F)
plot(h$count, log="xy", type='l', lwd=1, lend=2,
xlab="", ylab="", main="Density in logarithmic scale")

Oto podsumowanie danych:
> summary(x)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.1000 0.1208 0.1584 0.2590 0.2511 4.9388
Czy to działa, gdy ograniczenia wynoszą 0 i nieskończoność? – Peaceful
Drobne dodatkowe szczegóły: ** y ** jest jednolitą zmienną w zakresie [0,1]. –
Odpowiedź dmckee dostarcza brakujący kontekst niezbędny do zrozumienia wyprowadzenia w artykule Wolfram. – SigmaX