program hillvec; function hill (x: realvector): realvector; var n: integer; begin x := log (rev (sort (x [x > 0]))); n := size (x); return (cumsum (x)) [1..(n-1)] / (1..(n-1)) - x [2..n] end; procedure simulate; const alpha = 1.0; var y: realvector; i: integer; begin for i := 1 to 10000 do y := hill (1.0 / random (1000)) end; begin simulate end.