タグ

Pythonと順列に関するdelegateのブックマーク (2)

  • Pythonのitertoolsでできる全列挙のまとめ - minus9d's diary

    Pythonitertoolsモジュールには、イテレーションに関する便利関数が多数用意されています。この記事では、その中でも競技プログラミングで全列挙に使える関数についてまとめます。Python 2.x, 3.xのどちらでも使えます。 Google Code JamのSmallでは全列挙するだけで解ける問題が出ることが多いです。一通りどんな関数があるか知っておきましょう。 import文 スクリプトの冒頭に import itertoolsと書いてあるものとします。 1, 2, 3と書かれた玉が入った袋から、2つの玉を取り出す (3P2の順列) nums = [1, 2, 3] for balls in itertools.permutations(nums, 2): print(balls) 結果は以下です。 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3,

    Pythonのitertoolsでできる全列挙のまとめ - minus9d's diary
  • Python で順列を生成

    1. 順列の意味 順列 – Wikipedia によると、 組合せ数学における順列(じゅんれつ、permutation)は、あるひとつの集合から要素を選び出して、順番に意味を持たせて並べる (ordering) ときの、その並び(ordered list, sequence; 有限列)のことである。 うーん、ややこしそう。 (+_+) 数学苦手。どうやって生成するんだろう。 2. アルゴリズム 順列の生成とList内包表記 - 趣味的にっき によると、 与えられたリストから要素を1つ取り出して、残りの要素から再帰的に順列を求めて、それらを結合するアルゴリズムです。 (…) まずHaskellの場合。 (…) perms :: Eq a => [a] -> [[a]] perms [] = [[]] perms xs = [ h : t | h <- xs, t <- perms (xs \

    Python で順列を生成
  • 1