Zipf分布といえば,べき乗則でおなじみの分布です(http://en.wikipedia.org/wiki/Zipf%27s_law).一方,Zipf-MandelbrotはZipf分布を一般化したものだそうです(http://en.wikipedia.org/wiki/Zipf%E2%80%93Mandelbrot_law). Zipf-MandelbrotのPDFは f(x) = c / (x + b)^aとなるわけですが,今回はより単純な形式である, f(x) = 1 / xというPDFに従う乱数を生成する方法を説明します. まず,CDFを求めてみます.ただし,PDFの積分は ∫f(x) dx = ln(x) + C (Cは積分定数)であるけれど,F(0) = 0なのでCDFは F(x) = ln(x)となります. 次に,F(x)の逆関数をもとめます. y = ln(x) e^y