>>593
確率質量関数を確率密度関数にして期待値=∫確率変数値*確率密度関数で実行するのを離散値でやっているだけです。
タクシーの例で具体的に説明します。

通し番号の最大値が60になるように5台の選び方は
5台のうち1台の番号は60なので残りは1から59の番号の車から4台選ぶから、それはC[59,4]通り。

タクシー保有台数が60台のときに5台の選び方はC[60,5]通り
タクシー保有台数が60台のときに最大値が60になるように5台の選ばれる割合Pr[60]はC[59,4]/C[60,5]=1/12

タクシー保有台数が61台のときに5台の選び方はC[61,5]=5949147通り
タクシー保有台数が61台のときに最大値が60になるように5台の選ばれる割合Pr[61]はC[59,4]/C[61,5]=14/183
.....
タクシー保有台数が100台のときに5台の選び方はC[100,5]=75287520通り
タクシー保有台数が100台のときに最大値が60になるように5台の選ばれる割合Pr[100]はC[59,4]/C[100,5]=32509/5377680

Pr[i]=C[59,4]/C[i,5]

プログラムを組んで計算すると
Σ[i=60,100]Pr[i]=Σ[i=60,100]C[59,4]/C[i,5]=495157/448140=1.104916
この値をSとするとΣ[i=60,100]f(i)=1となる、
確率関数f[i]=Pr[i]/S= {C[59,4]/C[i,5]} / {Σ[i=60,100]C[59,4]/C[i,5]}
iを含まないC[59,4]は分母子から消去できるので
f[i]={1/C[i,5]} / Σ[i=60,100](1/C[i,5])

あとは期待値の定義Σ[i=60,100] i*f(i)を計算するだけ
2590100/36231=71.4885

手計算は大変なのでプログラムでかけば数行
> library(gmp)
> n=60:100
> pmf=chooseZ(59,4)/chooseZ(n,5)
> pdf=pmf/sum(pmf)
> sum(n*pdf)
Big Rational ('bigq') :
[1] 2590100/36231
> as.numeric(sum(n*pdf))
[1] 71.4885