Ruby

rubyの問題

More than 3 years have passed since last update.

問 1 ランダムソート

  • 1から10までの配列があります。
  • ランダムに並べ替えてください。

※ただし、Array#shuffle, Array#shuffle!, Array#sample は使用しないでください。

shuffle.rb
def f
  a = (1..10).to_a
  # -- ここにコードを記述してください。 --
end

# 三回出力してそれぞれランダムに並び替えられていることを確認します。
f
f
f

問 2 配列のソート問題

以下のようなに名前とそれぞれの項目の得点を記したCSVファイルがあります。
rubyの得点を基準に降順に並べ替え、名前とrubyの得点を出力しなさい。
また、平均点を計算し降順に並べ替え、名前と平均点を出力しなさい。
(平均点が同じ場合はrubyの点数が高い方を先に表示すること)

http://www.tm-21.co.jp/rubykaigi/ruby_1.csv

ruby_1.csv
name,ruby,php,python,perl
一郎,100,40,70,80
二郎,60,90,80,10
三郎,90,60,60,60
四郎,80,70,70,80
sort.rb
require 'open-uri'
require 'csv'

# csvファイル取得先URL
url = 'http://www.tm-21.co.jp/rubykaigi/ruby_1.csv'

# -- ここにコードを記述してください。 --

# -- ここに出力をしてください。 --

問 3 スクレイピング

以下のアドレスにアクセスしてください。

http://www.tm-21.co.jp/rubykaigi/ruby_1.html

一見、みんなRubyに見えますが、実は仲間はずれがいます!
上記アドレスをRubyを使用して読込み、仲間はずれをさがしてください。
仲間はずれの理由と何番目のRubyかを出力してください。
※仲間はずれの理由に特に正解はありません。自由に考えてOKです。

scraping.rb
require 'open-uri'

# スクレイピング先のURL
url = 'http://www.tm-21.co.jp/rubykaigi/ruby_1.html'

# -- ここにコードを記述してください。 --

# -- ここに出力をしてください。 --

問 4 確率の問題

0回から13回までのいずれかの回数だけトランプのカードを引けます。
引いたカードが、すべてスペードのカードである場合の確率を返すプログラムを作成してください。

以下は、トランプの内容です。

  1. トランプの枚数は、52枚です。
  2. トランプの絵柄は、「スペード、クローバー、ハート、ダイヤ」の4つです。
  3. 絵柄ごとにカードは、13枚あります。
  4. カードの種類は、「A 2 3 4 5 6 7 8 9 10 J Q K」の13種類です。