2022-09-01から1ヶ月間の記事一覧

JavaScript で「順列」と「組合わせ」を計算する

//組合わせ c= 1:重複あり, 0:重複なし function combinations (a = [ ], b = a.length, c = 1) { return 2 > b ? a.map(a =>[a]) : a.flatMap ((d,e)=> combinations (a.slice (e+1-c), b-1, c).map (e=> [d,...e])); } //順列 c= 1:重複あり, 0:重複なし f…

「組合わせ」を返す関数

function mathematics (ary = [ ], n = ary.length) { if (1 === n) { return ary.map (a=> [a]); } else { return ary.flatMap ((a, i)=> mathematics (ary.slice (i), n -1).map (b=> [a,...b])) } } console.log (mathematics ([1,2,3],3)); /* [1,1,1], …