配列を引数として取り、その最大値を返すアルゴリズムがあります。
find_max(as) :=
max = as[0]
for i = 1 ... len(as) {
if max < as[i] then max = as[i]
}
return max
max
私の質問は、配列が最初は (一様に) ランダムな順列であり、そのすべての要素が異なる場合、変数が更新されると予想される回数は何回ですか (最初の割り当てを無視します)。
たとえば、 の場合as = [1, 3, 2]
、 への更新回数はmax
1 になります (値 3 を読み取る場合)。