ヨーキョクデイ

100% pure impurities, which may imply some value. (j は虚数単位)

(1+x^k) の乗積を展開したときの係数

何年か前になぜか気になって、でもそのままにしていた問題をシンプルにした物だが、数学熱が高いことを理由に改めて考えてみた。

今気にしている式は、$$\begin{align} Q_n(x) &= (1+x)(1+x^2)(1+x^3) \cdots (1+x^n) \\ &= \prod_{k=1}^{n}(1 + x^k)\end{align}$$である。この $Q_n(x)$ は $x$ の $\frac{n(n+1)}{2}$ 次式であるが、これを展開するとどうなるのかという問題。まず、展開すると、次のような形の多項式となる。$$\begin{align} Q_n(x) &= a_0 + a_1\,x + a_2\,x^2 + \cdots + a_\frac{n(n+1)}{2}\,x^\frac{n(n+1)}{2} \\ &= \sum_{r=0}^{\frac{n(n+1)}{2}}a_r\,x^r \end{align}$$

で、具体的な係数 $a_r$ が欲しいよね、というお話である。

少し扱いづらいので、$Q_n(x)$ における $x^r$ の係数を $q_n(r)$ と書くことにすると、$$Q_n(x) = \sum_{r=0}^{\frac{n(n+1)}{2}}q_n(r)\,x^r$$と書ける。

正確さを欠く説明をすれば、実際の展開を考えたとき、$r$ 次の項は、$\{x^k\}$ から最大で $n$ 個選び、掛け合わせたときに $x^r$ になりました、という組み合わせから生じる。で、その積 $x^r$ がいくつか生じたものの和が最終的な $r$ 次の項となり、その係数 $q_n(r)$ は組み合わせの総数に等しい。つまり、指数法則の面から見れば、$n$ 以下の自然数から重複を許さずいくつか選び、それらの和が $r$ となる組み合わせの総数である。

さらに別の言い方をすれば、「自然数 $r$ の分割、すなわち $r$ を(必然的に $r$ 以下の)自然数の和で表す方法のうち、それぞれの分割方法において、成分がすべて異なり(制限その 1)、かつ、成分がすべて $n$ 以下(制限その 2)であるもの」の数が $q_n(r)$ であると。

俺の苦手な初等整数論とかの話になってきたぞ。

具体的に、$Q_4(x)$ を見てみる。$$\begin{align} Q_4(x) &= (1+x)(1+x^2)(1+x^3)(1+x^4) \\ &= 1+x+x^2+2x^3+2x^4+2x^5+2x^6+2x^7+x^8+x^9+x^{10} \end{align}$$

係数の構成要素は次のようになる。$$\begin{cases} q_4(1)=|\{1\}|=1 \\ q_4(2)=|\{2\}|=1 \\ q_4(3)=|\{3,\,2+1\}|=2 \\ q_4(4)=|\{4,\,3+1\}|=2 \\ q_4(5)=|\{4+1,\,3+2\}|=2 \\ q_4(6)=|\{4+2,\,3+2+1\}|=2 \\ q_4(7)=|\{4+3,\,4+2+1\}|=2 \\ q_4(8)=|\{4+3+1\}|=1 \\ q_4(9)=|\{4+3+2\}|=1 \\ q_4(10)=|\{4+3+2+1\}|=1 \end{cases}$$

例によって $r=0$ は $0$ 次の項を 4 つ掛けた 1 つの場合を考えるので、$q_4(0)=1$ なのである。上記の分割方法において、4 つの整数に満たない部分は $0$ で埋めるとすれば、$$q_4(0)=|\{0+0+0+0\}|=1$$ であり、同様に
$$q_4(3)=|\{3+0+0+0,\,2+1+0+0\}|=2$$であるので同じことであるというか、指数部の成り立ちとしてはこちらの表記のほうが無難であろう。

それはさておき、$Q_n(x)$ はそういう数 $q_n(r)$ を表す母関数と考えられる。もちろん、$r > \frac{n(n+1)}{2}$ なる $r$ については、その上記の 2 つの制限を満たすような分割は存在しないので、そのような $r$ に関しては $q_n(r)=|\{\}|=0$ と定義することができて、より一般的な母関数のように $Q_n(x)$ を$$Q_n(x) = \sum_{r=0}^\infty q_n(r)\,x^r$$といった冪級数で表すことも可能である。また、母関数の常套手段であるマクローリン展開同様のアプローチで、$$q_n(r) = \frac{Q_n^{(r)}(0)}{r!}$$と閉じた形で表せるわけだが、この高階微分を計算するときに上記の分割の話に舞い戻る。

ところで、Wikipedia にはは上記の制限 2 を除去した場合、つまり $n \to \infty$ の極限をとった場合と思われる話があったぞ。

それはそれは有名というか有用というか、メジャーな議論のようで、このような分割は "strict partition" と呼ぶらしく、下記において Partition Function Q として紹介されている。

この辺の性質は数論の人が詳しく解明しているのだろう。

続く。

マニアのための n 倍角・その 3

前回は 7 年近く前に書いた マニアのための n 倍角・証明 であるが、これは $\sin$ の $n$ 倍角、すなわち $\sin n\theta$ を $\sin(\theta+\alpha)$ の有限積で表すものであった。つまり、$$\sin n\theta = 2^{n-1} \prod_{k=0}^{n-1} \sin(\theta + \frac{k}{n}\pi)$$と表せるということを示した。

さて、左辺を $\theta$ で微分してみる。
$$\frac{d}{d\theta}\sin n\theta = n \cos n\theta$$

では同様に右辺を $\theta$ で微分してみるわけだが、積の微分法則の復習 で導出した、$$\begin{align} \frac{d}{dx}\prod_k f_k &= \qty( \sum_k \qty(\frac{df_k}{dx} \cdot \frac{1}{f_k} ) )\prod_k f_k \end{align}$$となる関係を用いることで、
$$\begin{align}
&\phantom{{}={}} \frac{d}{d\theta} \qty(2^{n-1} \prod_{k=0}^{n-1} \sin(\theta + \frac{k}{n}\pi) ) \\
&= 2^{n-1} \frac{d}{d\theta} \prod_{k=0}^{n-1} \sin(\theta + \frac{k}{n}\pi) \\
&= 2^{n-1} \qty[ \sum_{k=0}^{n-1} \qty(\qty(\frac{d}{dx}\sin(\theta + \frac{k}{n}\pi) ) \cdot \frac{1}{\sin(\theta + \frac{k}{n}\pi)} ) ] \prod_{k=0}^{n-1} \sin(\theta + \frac{k}{n}\pi) \\
&= \qty[ \sum_{k=0}^{n-1} \frac{\cos(\theta + \frac{k}{n}\pi)}{\sin(\theta + \frac{k}{n}\pi)} ] \cdot 2^{n-1} \prod_{k=0}^{n-1} \sin(\theta + \frac{k}{n}\pi) \\
&= \qty[ \sum_{k=0}^{n-1} \cot(\theta + \frac{k}{n}\pi) ] \cdot \sin n\theta
\end{align}$$となるわけである。すなわち、
$$n \cos n\theta = \qty[ \sum_{k=0}^{n-1} \cot(\theta + \frac{k}{n}\pi) ] \cdot \sin n\theta$$であるので、$$\cot n\theta = \frac{1}{n} \sum_{k=0}^{n-1} \cot(\theta + \frac{k}{n}\pi)$$
となって、$\cot$ の $n$ 倍角、すなわち $\cot n\theta$ が $\cot(\theta+\alpha)$ の有限和で表されることがわかる。何かしら図形的な意味を見いだせるのであろうか。

積の微分法則の復習

今回は積の微分の公式をいじる。

$x$ の関数である 2 関数 $f(x),\,g(x)$ の積を $x$ で微分すると、$$
\dv{x} \qty(f(x)g(x) ) = \qty( \dv{x} f(x) )g(x) + f(x) \qty(\dv{x} g(x) )
$$となるわけである。一般に複数の関数の積で表される $f(x) = \prod_k f_k(x)$ という関数の微分であっても、これを再帰的に適用することで同様の関係が得られる。

$$\begin{align} \dv{f}{x} &= \dv{x}\prod_k f_k \\ &= \sum_k \qty(\dv{f_k}{x} \cdot \prod_{i \ne k} f_i ) \end{align}$$

さらに(形式的に)変形すると、
$$\begin{align} \dv{f}{x} &= \sum_k \qty(\dv{f_k}{x} \cdot \frac{1}{f_k} \prod_i f_i ) \\ &= \qty(\sum_k \qty(\dv{f_k}{x} \cdot \frac{1}{f_k} ) )\prod_k f_k \\ &= \qty(\sum_k \qty(\dv{f_k}{x} \cdot \frac{1}{f_k} ) )f \end{align}$$となり、対称性を意識すれば、$$\begin{align} \dv{f_k}{x} \cdot \frac{1}{f} &= \sum_k \qty(\dv{f_k}{x} \cdot \frac{1}{f_k} ) \end{align}$$と書ける。この両辺を積分すれば、分子が分母の微分の形なので $\log$ なんちゃらが出てくるが、それを外せば(絶対値記号付きで)元の式が出てきそうであることがわかる。

スイッチングハブ買った

先日家族からプロバイダ変更の検討などの相談があり、どういったプランの契約内容かも知らなかったのでいろいろと調査してみたところ、より高速なインターネッツ環境が整えられた気がする。ところで我が家は 1 階にインターネッツの諸機器があり、我が部屋は 2 階にあるわけで、無線 LAN を導入して久しいわけだが、それがボトルネックとなって我が部屋では若干のスピードアップしか享受できないことがわかった。それゆえに一念発起し、あえて LAN ケーブルを引いてしまおうという暴挙に出た。
というわけで 30 メートルの LAN ケーブルを引き、我が部屋の末端でギガビットなハブに接続し、各機器に分けようという試みなのである。そこで導入したのが NETGEAR の GS108 という物なのである。

ファームの試合を観戦した

イースタン戦が中山の荘銀・日新スタジアムとかいう、つまるところの山形県野球場で開催されたので行ってきた。楽天 vs 巨人。QVC マリンでのオープン戦がおじゃんになったので、ようやく今季初観戦。
この球場に来たのは実に 20 年ぶり(!)2 回目で、イチローなんかがいる全盛期のオリックスが来るというので行った以来なので感慨深い。

それはそうとして、今回の試合は投手戦のような何かであり、両軍スコアレスからの延長戦で三好がサヨナラスリーランホームランをぶち込むという展開であった。イ・リーグ首位の底力を見た気がする。
f:id:electrolysis:20150602171625j:plainf:id:electrolysis:20150602172032j:plainf:id:electrolysis:20150602172504j:plainf:id:electrolysis:20150602175803j:plainf:id:electrolysis:20150602183109j:plainf:id:electrolysis:20150602183836j:plainf:id:electrolysis:20150602184826j:plainf:id:electrolysis:20150602193109j:plainf:id:electrolysis:20150602193739j:plainf:id:electrolysis:20150602193835j:plainf:id:electrolysis:20150602194201j:plainf:id:electrolysis:20150602194200j:plainf:id:electrolysis:20150602200755j:plainf:id:electrolysis:20150602201543j:plainf:id:electrolysis:20150602210949j:plain
近年の甲子園を湧かせた連中や、1 軍主力クラスの連中も多く、見応えがあった。

Samba24 なの(仮)メンテ

どうやら 25 日にサーバの大規模メンテが入ったらしく、CGI が 500 を吐きやがることを偶然発見したので、メンテ内容を精査したところ、Ruby が 1.8.5 から 2.2.0 にバージョンアップされていた。

上記に記載されていなかったのでスルーしていたところ、そこからリンクされている
障害情報 を見なければいけなかったという罠。ApachePHP の変更だけじゃなかったのかよ、と。
ところで、長らく使用していた Ruby 1.8 系のコードを書き換える必要が出てきたわけだが、とりあえずエンコーディング関連と require パスの処理の変更を行う必要があるらしかったので、そこを修正してとりあえず動いている模様。浦島太郎であるわけだが、XREA がずっと 1.8 系を使ってたせいで俺は 1.9 以降に移行しようとしなかったので、Ruby の変わりっぷりをよく知らないのでつらい。
以前からちょこっと載せているが、そろそろ閉鎖したい所存。