2020年6月11日木曜日

学習環境

ラング線形代数学(上) (ちくま学現文庫)(S.ラング (著)、芹沢 正三 (翻訳)、筑摩書房)の6章(行列式)、5(行列式の存在)、練習問題1の解答を求めてみる。



    1. 互換の積としてあらわすと、

      [ 1 2 3 2 3 1 ] = ( 1 , 3 ) ( 2 , 3 )

      符号は

      ( - 1 ) 2 = 1

    2. ( 1 , 3 ) ( 1 , 2 ) 1

    3. ( 1 , 3 ) - 1

    4. ( 1 , 2 ) ( 1 , 3 ) 1

    5. ( 1 , 2 ) ( 3 , 4 ) 1

    6. ( 1 , 3 ) ( 1 , 4 ) 1

コード

#!/usr/bin/env python3
from unittest import TestCase, main

print('1.')


def f(s, i, j):
    k = s.index(i)
    l = s.index(j)
    s[k], s[l] = s[l], s[k]


class TestPermutationTransposition(TestCase):
    def test(self):
        permutation = [[2, 3, 1, 4],
                       [3, 1, 2, 4],
                       [3, 2, 1, 4],
                       [2, 3, 1, 4],
                       [2, 1, 4, 3],
                       [3, 2, 4, 1]]
        transpositions = [[(1, 3), (2, 3)],
                          [(1, 3), (1, 2)],
                          [(1, 3)],
                          [(1, 2), (1, 3)],
                          [(1, 2), (3, 4)],
                          [(1, 3), (1, 4)]]
        for i, (p, ts) in enumerate(zip(permutation, transpositions)):
            print(f'({chr(ord("a") + i)})')
            s = [1, 2, 3, 4]
            for t in ts:
                f(s, *t)
            self.assertEqual(s, p)


if __name__ == "__main__":
    main()

入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))

% ./sample1.py -v
1.
test (__main__.TestPermutationTransposition) ... (a)
(b)
(c)
(d)
(e)
(f)
ok

----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
%

0 コメント:

コメントを投稿