1

34 個の要素がありますが、ランク付けされた上位 5 個の要素を知る必要があるだけです。

私は、34 要素すべてで比較「A 対 B」タイプのアンケートを使用しています。

現在、動的ではないため、以前の質問に基づいて質問を変更することはできません。

  • アンケートで質問できる質問の最小数は何ですか?
  • 使用する並べ替えアルゴリズムは何ですか?

現在、マニュアルと Excel を使用していますが、最終的には基本的な Rails アプリの Ruby でそれを行う方法を知りたいです。

4

1 に答える 1

4

単純な整数、浮動小数点数、または文字列しかない場合は、配列を簡単に並べ替えることができます。

a = [ 3,3,1,6,2,8 ]
a.sort # => [1,2,3,3,6,8]

しかし、これは昇順でソートされます。

降順に並べ替えるには、次のようにします。

a.sort {|x,y| y <=> x } # => [8,6,3,3,2,1]

また

a.sort.reverse # => [8,6,3,3,2,1]

次に、最初の 5 つの要素を取得するには、次を使用します。

a.sort.reverse.take(5) # => [8,6,3,3,2]

ソートしている要素が実際に構造体である場合、 sort_by ブロック内のコードを変更して、それを簡単に説明できます。次に例を示します。

a = [{:score => 5, :name => "Bob"}, {:score => 51, :name => "Jane"}, \
     {:score => 15, :name => "Joe"}, {:score => 23, :name => "John"}, \
     {:score => 35, :name => "Sam"}, {:score => 1, :name => "Rob"}]

a.sort_by{|x| x[:score] }.reverse.take(5)
# => [{:score => 51, :name => "Jane"},{:score => 35, :name => "Sam"},...]
于 2012-09-03T01:56:32.390 に答える