アシュリー

DTMに関しては初めての投稿です。
先日,といっても一ヶ月前ですが,新曲を音雲にアップしました。よかったら聴いてくださいね。


soundcloud.com

(MQubeはこっち → Spacer / ほげ | MQube


さわるメイドインワリオという任天堂のゲームがありますが,この曲はそのゲーム中のミニゲーム「アシュリー」のボスステージのBGMにインスピレーションを受けて作ったものです。その曲をリスペクトして,I→II♭→I→II♭→…… という進行を取り入れています。

キックのアタックの高音域をマシマシのマシにしたので,iPhoneのスピーカーで聴くとアタックがメチャ目立ってヤベェのです。イヤホンだと微妙。

なお,この曲はフリーダウンロードにしてあります。
音雲では「・・・ More」と書いてあるところから,MQubeではダウンロードボタンからDLできます。


ところで,2018年8月2日(記事投稿時点での今日!)にメイドインワリオの新作が3DSソフトで発売されるようでございますが、当方アシュリー様が大大大好きなので非常に嬉しい限りです。

アシュリー様がフルボイスでしゃべるよ!
みんな買ってね!


以上,露骨な宣伝でした。

桁落ちを回避できない複素数係数二次方程式

方程式の数値解を有効数字の限られたコンピュータで求める際,どうしても誤差はつきものです。

今回この記事では,複素数係数の二次方程式  a x^2 + b x + c = 0\ (a \neq 0) の数値解を解の公式を用いて求める際に,桁落ちを簡単に回避できない場合があるという話をします。

解の公式

まず,0でない複素数  z に対し, \sqrt{z}

 {
    w^2 = z
}

を満たすような複素数  w(一般に2つ存在する)のうち

 {
    \displaystyle -\frac{\pi}{2} < \arg w \le \frac{\pi}{2}
}

を満たすものとして定義します。*1

すなわち, z = r e^{i \theta}\ (-\pi < \theta \le \pi) に対して  \sqrt{z} := \sqrt{r} e^{i \theta / 2} とします。
また, \sqrt{0} = 0 とします。

 a, b, c がすべて実数の場合

中学校や高校で習うように,実数  a, b, c に対して上記の二次方程式の解は

 {
    \displaystyle x = \frac{- b \pm \sqrt{b^2 - 4 a c}}{2 a}
}

と表されます。解の1つ

 {
    \displaystyle x_1 = \frac{- b + \sqrt{b^2 - 4 a c}}{2 a}
}

をコンピュータで数値的に求めることを考えると,もし  b > 0 かつ  4ac \approx 0 であれば,近い値の引き算となるため桁落ちが発生してしまいます。このときは分子を有理化した形

 {
    \displaystyle x_1 = \frac{2 c}{- b - \sqrt{b^2 - 4 a c}}
}
を計算することで桁落ちを回避できます。もう1つの解も同様です。

*1:解の公式には根号の前に  \pm がついているので,ここでは多価関数として扱わなくても問題ないでしょう。

続きを読む

ガロア体GF(2^2), GF(2^3), GF(2^4)の加算表

手計算の時短のために加算表(addition table)を作りました。ご活用ください。
なお,表に出てくる  \alpha は原始多項式  f の根です。
もし間違いがありましたら,容赦なく指摘してくださると助かります。

GF(22)の加算表

原始多項式として  f(x)=x^2+x+1 を用いた, GF(2) の2次拡大体  GF(2^2) における加算表です。

f:id:hge:20180311005905p:plain

  •  \alpha^2 = \alpha + 1
  •  \alpha^3 = 1
続きを読む

正の整数を3つの正の整数の平方和・2つの正の整数の平方和へ分解する

前回の記事: 正の整数を4つの正の整数の平方和へ分解する - 冷水催眠

前回の記事の3つ及び2つの場合を記事にしました。


例えば, 41 という正の整数は  4^2 + 4^2 + 3^2,\ \ 6^2 + 2^2 + 1^2 というように3つの正の整数の平方和の形で2通りに表すことができます。
また, 41 = 5^2 + 4^2 というように2つの正の整数の平方和の形でも書くことができます。このように,与えられた正の整数  m に対し

 {
  m = a^2 + b^2 + c^2
}

もしくは

 {
  m = d^2 + e^2
}

を満たす正の整数の組  (a, b, c),\ (d, e) のリストをそれぞれ  1 \le m \le 250 の範囲で以下に列挙しました。以下のリストでは  \hspace{0.2 ex} a \ge b \ge c \hspace{0.2 ex},および  \hspace{0.2 ex} d \ge e \hspace{0.2 ex} を満たすように数字を並べました。ぜひぜひぜひぜひご活用ください。

リスト(3つの正の整数の平方和で表す)

[m] (a, b, c)
――――――――――
[3] (1, 1, 1)
[6] (2, 1, 1)
[9] (2, 2, 1)
[11] (3, 1, 1)
[12] (2, 2, 2)
[14] (3, 2, 1)
[17] (3, 2, 2)
[18] (4, 1, 1)
[19] (3, 3, 1)
[21] (4, 2, 1)
[22] (3, 3, 2)
[24] (4, 2, 2)
[26] (4, 3, 1)
[27] (3, 3, 3), (5, 1, 1)
[29] (4, 3, 2)
[30] (5, 2, 1)
[33] (4, 4, 1), (5, 2, 2)
[34] (4, 3, 3)
[35] (5, 3, 1)
[36] (4, 4, 2)

続きを読む