2018-10-09から1日間の記事一覧

自然数を n 個に分割する & 重複組み合わせ(Ruby)

def divide(x, n) result = [] return [] if n.zero? return [[0] * n] if x.zero? return [[x]] if n == 1 0.upto(x) do |i| result += divide(x - i, n - 1).map {|a| a + [i]} end result end p divide(5, 3) 結果。5 を 3つに分割している。 [[5, 0, 0],…

Go言語でスライスの要素の順列、組み合わせを与える

Go

これって組み込み関数がないのですかねえ...順列。コード。 permutation.go package main import "fmt" //スライスの 位置 i の要素を除いたスライスを返す(arを破壊しないようコピーしている) func remove(ar []int, i int) []int { tmp := make([]int, l…