tkenichi の日記

毒舌皮肉系恥さらし日記

数え上げた

f:id:tkenichi:20100313123835j:image

言語のマニュアルを見るのは、たまにしかやらないので見逃していた。
Ruby の Array クラスには combination と permuation が定義されていた。
数え上げよう(組合せ編) - tkenichiの日記 は忘れてください。

[0,1,2,3,4].combination(2) do |c|
	p c
end

の出力が

[0, 1]
[0, 2]
[0, 3]
[0, 4]
[1, 2]
[1, 3]
[1, 4]
[2, 3]
[2, 4]
[3, 4]

こうなる。

十分速い。

n = Array.new(20){ |i| i }
count = 0
t = Time.now
n.combination(10){|c|
	count += 1
}
p Time.now - t
p count

を実行して Intel Core2 2.13GHz Linux ruby1.8.7

0.187
184756

使わない手はないですね。組み合わせ問題を解くのに使えそうです。