Comment detail

自然数の分割 (Nested Flatten)

This comment is reply for 4319 sawat: rubyが無かったので書いてみたら、もう...(自然数の分割). Go to thread root.

行数を減らしてみた。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
def part_number(n, m)
  table = Array.new(n+1) {|i| [[i]] }
  2.upto(m) do |p|
    table = Array.new(n+1) do |i|
      (0..i).inject([]) do |list, j|
        table[j].inject(list) {|res, l| res << ([i-j] + l)}
      end
    end
  end
  table[n]
end

m = (ARGV.shift || 5).to_i
n = (ARGV.shift || 3).to_i
part_number(m, n).each do |a|
  puts a.join(',')
end

Index

Feed

Other

Link

Pathtraq

loading...