Comment detail

自然数の分割 (Nested Flatten)

残念ながら、 パフォーマンスは考慮されていません。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 設定
def m = 4
def n = 5

// 準備
def patterns = [[]]
(1..m).each{
    def newPatterns = []
    (0..n).each{ i ->
        patterns.each{ p ->
            newPatterns << p + [i]
        }
    }
    patterns = newPatterns
}

// シミュレート
patterns.findAll{
    it.sum() == n
}.sort().reverse().each{
    println it.join(",")
}

Index

Feed

Other

Link

Pathtraq

loading...