Problem 158
コンテンツ
http://projecteuler.net/index.php?section=problems&id=158
組み合わせの問題
choose n r = div (product [n-r+1..n]) $ product [1..r] p m n = (2^n-(n+1))*choose m n main = print.maximum.map (p 26) $ [..26]
要素数mの順序集合からn個選び出し、降順に並べる並べ方はmCn.
降順に並んだ中から、部分列を適当に抜き取ってから、抜き取った後の列の前にくっつけると
その接合箇所で、順序が降順ではなく昇順になる。
部分列の選び方は2^nだがその中でn+1とおりは不適当(e.g. 全部選ぶとか)。
作成者 Toru Mano
最終更新時刻 2023-01-01 (c70d5a1)