- 402 名前:203 mailto:sage [2009/08/25(火) 01:46:21 ]
- >>401
思いつく限りしてみたのですが・・・ require 'pp' ary = %w(w1 w2 w3 w4 w2 w3 w1 w1 w5 w2 w3 w4) col = %w(w1 w2 w3 w9) zero = ary.uniq.inject(Hash.new){|h,w| h[w] = 0 ; h } window = 6 hout = Hash.new ary.each_with_index do |key,i| (hout[key] = zero.dup) unless hout.key?(key) ary[i+1,window].select{ |e| e != key }.each { |word| hout[key][word] += 1 } end pp hout ar=Hash.new;ar.default=0;ar= hout.values[0].values_at(*col) p ar hout.each_pair do |k,v| if col.include?(k) puts "#{k}\t#{v.values_at(*col)}" end end # >> {"w1"=>{"w1"=>0, "w2"=>4, "w3"=>4, "w4"=>3, "w5"=>2}, # >> "w2"=>{"w1"=>4, "w2"=>0, "w3"=>5, "w4"=>2, "w5"=>1}, # >> "w3"=>{"w1"=>4, "w2"=>2, "w3"=>0, "w4"=>3, "w5"=>2}, # >> "w4"=>{"w1"=>2, "w2"=>2, "w3"=>1, "w4"=>0, "w5"=>1}, # >> "w5"=>{"w1"=>0, "w2"=>1, "w3"=>1, "w4"=>1, "w5"=>0}} # >> ["w1", "w2"] # >> [0, 4, 4, nil] # >> w1 044 # >> w2 405 # >> w3 420 arにkeyが存在しなければnilではなくて0にしたいのですが何かどうすればいいでしょうか?
|

|