#/*********************************************************** # rank1.c -- 順位づけ #***********************************************************/ def rank1(i, n, a) # a の順位 (学力テスト) r = 1; x = a[i] for k in 0...n if (a[k] > x); r += 1; end end return r end def rank2(i, n, a) # a の順位 (統計学) n_eq = 1; n_lt = 0; x = a[i] for k in 0...n if (a[k] < x); n_lt += 1 elsif (a[k] == x); n_eq += 1; end end return n_lt + 0.5 * n_eq end N = 20 MAX = 100 a = [] for i in 0...N a[i] = ((MAX + 1.0) * rand).to_i end printf(" score rank1 rank2\n") for i in 0...N printf("%2d: %5d %5d %5.1f\n", i, a[i], rank1(i, N, a), rank2(i, N, a)) end exit 0