#/*********************************************************** # rank2.rb -- ½ç°Ì¤Å¤± #***********************************************************/ MAX = 100 def find_rank( n, a, rank) count = [] for i in 0..MAX; count[i] = 0; end for i in 0...n; count[a[i]] += 1; end count[MAX + 1] = 1 MAX.downto(1) do |i|; count[i] += count[i + 1]; end for i in 0...n; rank[i] = count[a[i] + 1]; end end N = 20 a = [] rank = [] for i in 0...N a[i] = (MAX + 1.0) * rand() end find_rank(N, a, rank) printf(" score rank\n") for i in 0...N printf("%2d: %5d %4d\n", i, a[i], rank[i]) end exit 0