ckbx #8052(2008/11/19 18:32 GMT) [ Python ] Rating-1/3=-0.33
n×nの2次元配列を引数にとり、 これを行列とみなして行列式を返す 関数を作成してください。
行列・線形代数のライブラリ等を 使用しないことが条件です。
参考:http://ja.wikipedia.org/wiki/%E8%A1%8C%E5%88%97%E5%BC%8F
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
# -*- coding: utf-8 -*- # 定義に基づく実装例 # 対称群 def symmetric_group(n): # 配列 [0, 1, .., (n-1)] を並び替えてできる # すべての配列の組み合わせを返します。 # 置換の符号 def signature(sym): # 配列 [0, 1, .., (n-1)] の符号を +1とします。 # 互換(2つの要素を交換)すると符合が変わります。 # 配列 [0, 1, .., (n-1)] から # 奇数回の互換で得られる配列の符号は -1、 # 偶数回の互換で得られる配列の符号は +1 になります。 # 行列式 def determinant(mat): det = 0; deg = len(mat) for s in symmetric_group(deg): term = signature(s) for i in range(deg): term *= mat[i][s[i]] det += term return det
Rating-1/3=-0.33-0+
[ reply ]
ckbx #8052() [ Python ] Rating-1/3=-0.33
n×nの2次元配列を引数にとり、 これを行列とみなして行列式を返す 関数を作成してください。
行列・線形代数のライブラリ等を 使用しないことが条件です。
参考:http://ja.wikipedia.org/wiki/%E8%A1%8C%E5%88%97%E5%BC%8F
Rating-1/3=-0.33-0+
[ reply ]