fortran66のブログ

fortran について書きます。

【メモ帳】分割数の偶奇 p(n) mod 2

p(n) mod 2

対称群の指標をなんとなく眺めていますと、既約表現はヤング図で表わされ、ヤング図の共役に関して逆さまな順で並んでいるので普通は2個セットで出てきます。ただ自己共役なヤング図に対応する規約表現は単独で出てくることになります。

指標の表の例は以下のリンクにあります。 fortran66.hatenablog.com

ところで対称群 S_nの既約表現の数は、n マスのヤング図の数に等しく、n マスのヤング図の数は分割数p(n)に等しくなっています。となると当然あるnに対する対称群の既約表現の数と分割数の偶奇性も等しいということになります。

そうして対称群 S_nの既約表現の数の偶奇性は、先に述べたように自己共役でないヤング図に対応するものは2個セットで出てきて偶数になることを考えると、自己共役なヤング図形の数の個数の偶奇性に一致することになります。

一方、n マスの自己共役なヤング図の個数は、相異なる奇数の和に等しいことが知られています。これは魚の開きのようにヤング図を斜め下45度方向から開いて平らにしてやることですぐわかります。

例: [321]

***
**
*

5+1

*****
  *

なお相異なる奇数の和の数は、オイラー式に奇数べきの多項式を展開して係数を数えれば求められます。

以上のことを計算して確かめてみます。

Wolfram Language

Product[(1+x^i),{i,1,21,2}] 

(x+1) (x3+1) (x5+1) (x7+1) (x9+1)(x11 +1)(x13 +1)(x15 +1)(x17 +1)(x19 +1)(x21 +1)

Expand[%] 

f:id:fortran66:20200927145037p:plain

必要なところを切り出すと

x + x3 + x4 + x5 + x6 + x7 + 2x8 + 2x9 + 2x10 + 2x11 + 3x12 + 3x13 + 3x14 + 4x15 + 5x16 + 5x17 + 5x18 + 6x19 + 7x20

この展開係数より共役なヤング図の数は n=1,2,3...20 に対してそれぞれ 1,0,1,1,1,1,1,2,2,2,2,3,3,3,4,5,5,5,6,7 と求まります。その偶奇性は 1,0,1,1,1,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1 (0:偶、1:奇) となり、これが分割数 p(n) の偶奇性と一致するはずです。

Expand[%, Modulus->2] 

こうすればよかったw

fortran

分割数を制限付き分割で計算します。Fortran2018 で導入の import, none を使うと、内部副プログラムの変数のアクセスコントロールが可能になり、うっかりメインルーチン側の変数を間違って使ってしまうことを抑止できます。(implicit none みたいなもの)

mod 2 で求めた偶奇性も求めます。

program partition
    implicit none
    integer :: i
    do i = 1, 20
        print *, i, pr(i, 1), mod(pr(i, 1), 2)
    end do

contains
    ! restricted partition
    pure recursive integer function pr(n, k) result(ires)
        import, none
        integer, intent(in) :: n, k
          if (n < k .or. k <= 0) then
            ires = 0
          else if (n == k) then
            ires = 1
          else
            ires = pr(n - k, k) + pr(n, k + 1)
          end if
    end function pr
end program partition

計算結果

           1           1           1
           2           2           0
           3           3           1
           4           5           1
           5           7           1
           6          11           1
           7          15           1
           8          22           0
           9          30           0
          10          42           0
          11          56           0
          12          77           1
          13         101           1
          14         135           1
          15         176           0
          16         231           1
          17         297           1
          18         385           1
          19         490           0
          20         627           1

果たして、自己共役なヤング図の数の偶奇性と一致しました。

Wolfram Engine + intel fortran

f:id:fortran66:20200927143504p:plain

整数の分割

整数の分割