Rubyのcombinationを利用して全通りの組み合わせを出してみた

膨大な組み合わせを考えるの面倒だったのでなんとかならんかと思ってたら、Rubyに自動で全ての組み合わせを出力してくれる機能があったのでやってみました。

環境

  • OS: Ubuntu 12.04 64bit
  • Ruby: ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]

combination とは

instance method Array#combination

サイズ n の組み合わせをすべて生成し、それを引数としてブロックを実行します。

試しに使ってみる

なんとなく新幹線とバスの組み合わせを書いてみました。

comb.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 数値を3桁でカンマ区切りする
# http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/37580
def num_fmt(num)
num.to_s.reverse.gsub( /(\d{3})(?=\d)/, '\1,' ).reverse
end

# 新幹線とバス
data = {
1 => {:name => "新幹線(名古屋) ", :price => 10780},
2 => {:name => "高速バス(名古屋)", :price => 3500},
3 => {:name => "新幹線(新大阪) ", :price => 14050},
4 => {:name => "高速バス(大阪) ", :price => 5500}
}
num = [1, 2, 3, 4]
num.combination(2){|a, b|
str = "#{data[a][:name]}: ¥#{num_fmt(data[a][:price]).to_s}"
str << " + "
str << "#{data[b][:name]}: ¥#{num_fmt(data[b][:price]).to_s}"
str << " = "
str << "¥#{num_fmt((data[a][:price].to_i + data[b][:price].to_i)).to_s}"
puts str
}
Terminal
1
2
3
4
5
6
新幹線(名古屋)  : ¥10,780 + 高速バス(名古屋): ¥3,500 = ¥14,280
新幹線(名古屋) : ¥10,780 + 新幹線(新大阪) : ¥14,050 = ¥24,830
新幹線(名古屋) : ¥10,780 + 高速バス(大阪) : ¥5,500 = ¥16,280
高速バス(名古屋): ¥3,500 + 新幹線(新大阪) : ¥14,050 = ¥17,550
高速バス(名古屋): ¥3,500 + 高速バス(大阪) : ¥5,500 = ¥9,000
新幹線(新大阪) : ¥14,050 + 高速バス(大阪) : ¥5,500 = ¥19,550

これは便利。処理の他にもCSVとかにしてExcelで読み込ませるとかで使えそう。

以上です。

自宅にダーツを設置してみた。

今日はこれから友人が美味しいご飯をご馳走してくれるらしい。どうも何某です。こんにちは。

珍しく昼更新。

自宅でもダーツを練習したいので

ダーツ熱が全く冷めない。しかしダーツバーに毎日行くにはちょっと金が。。。でも練習したい。。。上手くなりたい。。。

というわけでダーツを自宅に設置したいと思います。

賃貸マンションなのでいろいろと問題が

数年前にもダーツにハマった私は、エレクトロニックダーツを自宅に設置しました。その際、壁に直接ネジで止めてましたが、引越しの時に多少物言いがはいることに。

また、エレクトロニックダーツは音が凄い。ダーツが刺さった際、ガッシャーン!!というものすごい音が鳴ります。仕事から帰ってご飯食べたらもう深夜という時間になるので、昼しか投げれないのは設置した意味がない。

パーテーション+ブリッスルボード(ソフトダーツサイズ)で解決

調べると賃貸マンションに住んでる方は、パーテーションにダーツを設置して壁に穴を開けるのを回避しているらしい。

音のほうは、ハードダーツと同じ素材のダーツボードでソフトダーツのサイズのボードを利用しているということ。確かにハード用ならガシャガシャ言わないので静か。

というわけで以下をamazonで購入しました。定番の組み合わせみたいです。

設置

ダーツボードは直接パーテーションに設置するわけではなく、パーテーションに板を貼り、その板にダーツボードを設置するという方法をとりました。

パーテーションに収まる幅40cmの板を適当に金具で止めます。どちらもホームセンターで購入。

これを、4箇所。

裏返してダーツボードに付属している、設置金具を取り付けます。

あとは取説通りに設置ですが、この金具だとボードが回ってしまうので、私は板とダーツボードの間にダンボールやら静音ゴムやらを適当にいれて、静音化を図りつつ固定してます。

パーテーションのいいところは、場所もすぐ変えられるうえに高さも任意の高さに変えれるというところでしょうか。

家の中では靴を脱いでるので、規定の173cmから靴底分1cm低い172cmで設置する人もいるとか。

問題の音は軽くトンッって感じなので、深夜でも特に気にすることはないです。何時でも何時間でも投げれますので設置おすすめです。

以上です。

チョコレート・ガール バッド・アス!!を観てきた。

久しぶり映画館に行った気がする。どうも何某です。こんばんは。

数年前に某ラジオでチョコレート・ファイターという映画が絶賛されておりまして。観たら超面白い。
しかもジージャー・ヤーニンがびっくりするほど可愛い。そんなジージャー主演の映画チョコレート・ガール バッドアス!!(原題:This Girl Is BAD ASS!)が日本で公開されるということでさっそく行ってみました。公開初日でしたがキャパ50人ほどのところ30人くらいでしょうか。ヒューマントラストシネマ渋谷で上映中です。

とりあえずトレーラー。

主演のジージャーは可愛い顔してるのにリアルでテコンドーの達人。しかもこの顔でスタント使わないで全てのアクションをこなしてる。まじで凄い。並んでる人の顔を立ち位置変えず蹴り上げるとか半端ない。

チョコレート・ファイターで魅力余すことなく出した殺陣が本作でも全開。その上ピストを超絶テクニックで乗り回してる。開始早々から度肝抜かれます。

ネタバレは控えたいのであまり書きませんが、基本的にストーリーはどうでもいい感じ。伏線回収する気あるのこれみたいな。最後の最後にそうなるかみたいな。

藤原とうふ店とかワンピースとか日本好きなんだなーって感じの表現が満載で、結構笑わせるところ多いんですが日本的なボケも多い気がします。

まぁとにかく完全にジージャーのアイドル映画。細かいことを気にせずジージャーの可愛さと超絶アクションを満喫させていただきました。トムヤムクン2、チョコレート・ファイター2も非常に楽しみ。

少しでもジージャーに興味が出た方、もしかすると大々的に公開しないかもしれないので、今のうちに観に行ったほうがいいかと思います。

あ、そういえば、ジージャー第一子ご出産おめでとう御座います。

チョコレート・ガール バッド・アス!! 公式サイト

© 2024 磁力式駆動 All Rights Reserved.
Theme by hiero