mathkyoproの日記

数学や競プロの問題を解説したりします。

1/12 公式 (3次式の積分)

1/6 公式について解説した、以下の記事の続きです。
mathkyopro.hatenablog.com

1/12 公式とは、以下の等式のことです。
\begin{equation}
I = \int_\alpha^{\beta} (x - \alpha)(x - \beta)^2 \mathrm{d}x = +\frac{1}{12}(\beta - \alpha)^3 \tag{1}
\end{equation} \begin{equation}
J = \int_\alpha^{\beta} (x - \alpha)^2(x - \beta) \mathrm{d}x = -\frac{1}{12}(\beta - \alpha)^3 \tag{2}
\end{equation}
これを証明します。



1/6 公式と同じように置換しますが、$I$ については $x - \beta = t$ と置換します。次数が大きい方を $t$ と置いた方が式が簡単になります。$J$ については $x - \alpha = t$ と置換します。これにより、
\begin{split}
I &= \int_{-D}^0 (t + D)t^2 \mathrm{d}t = -\int_{0}^{-D} (t + D)t^2 \mathrm{d}t \\
J &= \int_0^D t^2(t - D) \mathrm{d}t
\end{split} を得ます。$D = \beta - \alpha$ と置きました。これを計算して、
\begin{split}
I &= -\left[ \frac{1}{4}t^4 + D \frac{1}{3} t^3 \right]_0^{-D} & = - \left( \frac{1}{4}D^4 - \frac{1}{3}D^4 \right) &= +\frac{1}{12}D^4 \\
J &= \left[ \frac{1}{4}t^4 - D \frac{1}{3} t^3 \right]_0^{D} & = \left( \frac{1}{4}D^4 - \frac{1}{3}D^4 \right) &= -\frac{1}{12}D^4 \\
\end{split} を得たので、$(1), \ (2)$ 式が示されました。


この式でも、符号は、図形的に簡単に分かるので覚える必要がありません。
$3$ 次の係数が正の $3$ 次式なので、左は $-\infty$ から来て、右は $\infty$ へ行きます。また、$1$ 次の方の根は $x$ 軸と交わり、$2$ 次の方の根は接します。






1/6 公式の簡単な証明

1/6 公式とは、以下の等式のことです。
\begin{equation}
I = \int_\alpha^{\beta} (x - \alpha)(x - \beta) \mathrm{d}x = -\frac{1}{6}(\beta - \alpha)^3 \tag{1}
\end{equation} これを証明します。


$t = x - \alpha$ と置換します。$D = \beta - \alpha$ と置くと、$x - \beta = (t + \alpha) - \beta = t - D$ ですので、
\begin{equation}
I = \int_0^D t(t - D) \mathrm{d}t
\end{equation} となります。これを計算して、
\begin{split}
I &= \left[ \frac{1}{3}t^3 - D \frac{1}{2} t^2 \right]_0^D \\
&= \frac{1}{3} D^3 - \frac{1}{2} D^3 \\
&= -\frac{1}{6} D^3 \\
&= -\frac{1}{6} (\beta - \alpha)^3
\end{split} を得たので、$(1)$ 式が示されました。


このうち、符号が負であることは、図形的に簡単に分かるので覚える必要がありません。

$I$ は図の放物線と $x$ 軸が囲む符号付き面積ですが、それは $x$ 軸の下にあるので負です。



いずれこの 1/6 公式に関連した、3次式の積分に対する 1/12 公式や、4次式の積分に対する 1/20 公式、1/30 公式、またこれらすべての一般化であるベータ関数について解説したいと思います。






マイナスかけるマイナスはなぜプラスなのか

これを考えるために、整数では何が成り立っているのかをまず見ていく必要があります。


準備: 整数の性質
整数 $ \left( \mathbb{Z} \right)$ では、加法 ($+$) と乗法 ($\cdot$) が定義されており、以下の性質が成立しています。

① 加法について
A. 加法について閉じている。つまり、$\forall a, b \in \mathbb{Z}$ に対して $a + b \in \mathbb{Z}$ が成り立つ。
B. 結合法則。つまり、$\forall a, b, c \in \mathbb{Z}$ に対して $(a + b) + c = a + (b + c)$ が成り立つ。
C. 可換。つまり、$\forall a, b \in \mathbb{Z}$ に対して $a + b = b + a$ が成り立つ。
D. 単位元の存在。つまり、$\exists e \in \mathbb{Z} \ \forall a \in \mathbb{Z} \ a + e = a$ が成り立つ。(整数において、そのような $e$ は $0$)
E. 逆元の存在。つまり、$\forall a \in \mathbb{Z} \ \exists a' \in \mathbb{Z} \ a + a' = 0$ が成り立つ。($a$ に対してそのような $a'$ を $-a$ と書き、この加法逆元を特に反元と呼ぶ)

② 乗法について
A. 乗法について閉じている。つまり、$\forall a, b \in \mathbb{Z}$ に対して $a \cdot b \in \mathbb{Z}$ が成り立つ。
B. 結合法則。つまり、$\forall a, b, c \in \mathbb{Z}$ に対して $(a \cdot b) \cdot c = a \cdot (b \cdot c)$ が成り立つ。
C. 可換。つまり、$\forall a, b \in \mathbb{Z}$ に対して $a \cdot b = b \cdot a$ が成り立つ。
D. 単位元の存在。つまり、$\exists e \in \mathbb{Z} \ \forall a \in \mathbb{Z} \ a \cdot e = a$ が成り立つ。(整数において、そのような $e$ は $1$)

③ 加法と乗法について
・左分配法則。つまり、$\forall a, b, c \in \mathbb{Z}$ に対して $a \cdot (b + c) = a \cdot b + a \cdot c$ が成り立つ。
・右分配法則。つまり、$\forall a, b, c \in \mathbb{Z}$ に対して $(a + b) \cdot c = a \cdot c + b \cdot c$ が成り立つ。



このうち、非負整数に対して負の整数を定義した直接の効果は、① E の成立です。非負整数ではもちろん、これは成り立っていません。
因みに、集合と $2$ つの演算の組に対して、① - ③ が成立している場合、その組を「環」といいます。$\left( \mathbb{Z}, +, \cdot \right)$ は環です。
集合と $1$ つの演算の組に対して A - E が成立している場合、その組を「可換群 (アーベル群)」といいます。$\left( \mathbb{Z}, + \right)$ は可換群です。
集合と $1$ つの演算の組に対して A, B, D が成立している場合、その組を「モノイド」といいます。$\left( \mathbb{Z}, \cdot \right)$ はモノイドです。



なぜマイナスかけるマイナスはプラスか
一言でいうと、分配法則からの帰結です。そのことを説明していきます。(1) (2) は示すべきことなので証明していますが、自明だと思えるなら、(3) だけ見てもらってもいいです。


(1) 加法単位元 $0$ は乗法吸収元である。すなわち、$\forall a \in \mathbb{Z} \ a \cdot 0 = 0 \cdot a = 0$ が成り立つ。
(証明)
\begin{split}
\forall a \in \mathbb{Z} \ \ a \cdot 0 &= a \cdot (0 + 0) \ \ (\because 0 \ \text{は加法単} \text{位元}) \\
&= a \cdot 0 + a \cdot 0 \ \ (\because 左分配法則)
\end{split} ここで、① E 反元の存在から、両辺に $-(a \cdot 0)$ を足すことができるので、
\begin{equation}
\forall a \in \mathbb{Z} \ \ 0 = a \cdot 0
\end{equation} である。同様に $0 \cdot a = 0$ も右分配法則から言えるので題意が言えた。


(2) $\forall a, b \in \mathbb{Z} \ -(a \cdot b) = (-a) \cdot b = a \cdot (-b)$
(証明)
\begin{split}
\forall a, b \in \mathbb{Z} \ \ 0 &= 0 \cdot b \ \ (\because (1)) \\
&= (a + (-a)) \cdot b \ \ (\because ① \ \mathrm{E} \ 反元の存在) \\
&= a \cdot b + (-a) \cdot b \ \ (\because 右分配法則) \\
\end{split} 従って、反元の定義から、$a \cdot b$ の反元 $-(a \cdot b) = (-a) \cdot b$ である。同様にして左分配法則から $-(a \cdot b) = a \cdot (-b)$ なので、題意が言えた。


(3) マイナスかけるマイナスはプラスである。つまり、$\forall a, b \in \mathbb{Z} \ (-a) \cdot (-b) = a \cdot b$ が成り立つ。
(証明)
\begin{split}
\forall a, b \in \mathbb{Z} \ \ 0 &= -a \cdot 0 \ \ (\because (1)) \\
&= -a \cdot (b + (-b)) \ \ (\because ① \ \mathrm{E} \ 反元の存在) \\
&= (-a) \cdot b + (-a) \cdot (-b) \ \ (\because 左分配法則) \\
&= -(a \cdot b) + (-a)\cdot (-b) \ \ (\because (2))
\end{split} ここで、$a \cdot b$ の反元が $-(a \cdot b)$ なので、両辺に $a \cdot b$ を足すと、
\begin{equation}
\forall a, b \in \mathbb{Z} \ \ a \cdot b = (-a)\cdot (-b)
\end{equation} である。よって題意が言えた。


つまり、分配法則が成り立つなら、必然的にマイナスかけるマイナスがプラスである必要があるのです。






回転座標系と慣性力

概要
回転座標系では、遠心力とコリオリ力という慣性力が現れることが知られています。これを導出していきます。



準備
慣性系として $xy$ 軸をとり、座標を $x(t), \ y(t)$ とします。それに対し、正の方向 (反時計回り) に $\theta(t)$ 回転している回転座標系 $XY$ を取り、座標を $X(t), \ Y(t)$ とします。


以下、時刻 $t$ の関数 $f(t)$ に対して、$t$ の微分 $ \mathrm{d}f(t) / \mathrm{d}t = \dot{f}(t)$ と書くことにします。$(t)$ は適宜省略します。



導出
$2$ つの座標系の関係は以下のように書けます。
\begin{equation}
\begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} \begin{pmatrix} X \\ Y \end{pmatrix} \tag{1}
\end{equation} $\theta$ が $t$ の関数であることに注意して一階微分を考えると、
\begin{equation}
\begin{cases}
\dot{x} = -\dot{\theta} \sin \theta \ X + \cos \theta \ \dot{X} - \dot{\theta} \cos \theta \ Y - \sin \theta \ \dot{Y} \\
\dot{y} = \dot{\theta} \cos \theta \ X + \sin \theta \ \dot{X} - \dot{\theta} \sin \theta \ Y + \cos \theta \ \dot{Y}
\end{cases}
\end{equation} となります。この式をさらに微分して、
\begin{split}
\ddot{x} &= -\left( \ddot{\theta} \sin \theta \ X + \dot{\theta}^2 \cos \theta \ X + \dot{\theta} \sin \theta \ \dot{X} \right) + \left( - \dot{\theta} \sin \theta \ \dot{X} + \cos \theta \ \ddot{X} \right) \\
& \ \ \ \ - \left( \ddot{\theta} \cos \theta \ Y - \dot{\theta}^2 \sin \theta \ Y + \dot{\theta} \cos \theta \ \dot{Y} \right) - \left( \dot{\theta} \cos \theta \ \dot{Y} + \sin \theta \ \ddot{Y} \right) \\
& = \left( \cos \theta \ \ddot{X} - \sin \theta \ \ddot{Y} \right) - \dot{\theta}^2 \left( \cos \theta \ X - \sin \theta \ Y \right) \\
& + 2 \dot{\theta} \left( -\sin \theta \ \dot{X} - \cos \theta \ \dot{Y} \right)+ \ddot{\theta} \left( -\sin \theta \ X - \cos \theta \ Y \right)
\end{split} と、
\begin{split}
\ddot{y} &= \left( \ddot{\theta} \cos \theta \ X - \dot{\theta}^2 \sin \theta \ X + \dot{\theta} \cos \theta \ \dot{X} \right) + \left( \dot{\theta} \cos \theta \ \dot{X} + \sin \theta \ \ddot{X} \right) \\
& - \left( \ddot{\theta} \sin \theta \ Y + \dot{\theta}^2 \cos \theta \ Y + \dot{\theta} \sin \theta \ \dot{Y} \right) + \left( -\dot{\theta} \sin \theta \ \dot{Y} + \cos \theta \ \ddot{Y} \right) \\
& = \left( \sin \theta \ \ddot{X} + \cos \theta \ \ddot{Y} \right) - \dot{\theta}^2 \left( \sin \theta \ X + \cos \theta \ Y \right) \\
& + 2 \dot{\theta} \left( \cos \theta \ \dot{X} - \sin \theta \ \dot{Y} \right)+ \ddot{\theta} \left( \cos \theta \ X - \sin\theta \ Y \right)
\end{split} を得ます。ところで、元の座標系 $xy$ で力が
\begin{equation}
\boldsymbol{F} = \begin{pmatrix} F_x \\ F_y \end{pmatrix} \left( = \begin{pmatrix} m\ddot{x} \\ m\ddot{y} \end{pmatrix} \right) \tag{2}
\end{equation} と書かれていたとすると、回転座標系 $XY$ での成分は、
\begin{equation}
\begin{pmatrix} F_X \\ F_Y \end{pmatrix} = \begin{pmatrix} \cos \theta & \sin \theta \\ -\sin \theta & \cos \theta \end{pmatrix} \begin{pmatrix} F_x \\ F_y \end{pmatrix} \tag{3}
\end{equation} となります。式 $(1)$ の両辺に逆行列をかけたような形です。式 $(2), \ (3)$ に $\ddot{x}, \ \ddot{y}$ の表式を代入することにより、
\begin{equation}
\begin{cases}
F_X = m\ddot{x} \cos \theta + m\ddot{y} \sin \theta = m\ddot{X} - mX \dot{\theta}^2 - 2m \dot{Y} \dot{\theta} - mY \ddot{\theta} \\
F_Y = -m\ddot{x} \sin \theta + m\ddot{y} \cos \theta = m\ddot{Y} - mY \dot{\theta}^2 + 2m \dot{X} \dot{\theta} + mX \ddot{\theta}
\end{cases}
\end{equation} を得るので、整理すると、
\begin{cases}
m\ddot{X} = F_X + mX \dot{\theta}^2 +2m \dot{Y} \dot{\theta} + mY \ddot{\theta} \\
m\ddot{Y} = F_Y + mY \dot{\theta}^2 -2m \dot{X} \dot{\theta} - mX \ddot{\theta}
\end{cases} を得ます。これが回転座標系での運動方程式です。このうち第 $1$ 項は、慣性系でもあった外力による項です。第 $2$ 項が遠心力で、原点から遠ざかる向きに働きます。第 $4$ 項は角加速度による慣性力です。$\ddot{\theta} > 0$ の場合、下図の向きに働きます。また、回転座標系が一定の速度で回転し、$\dot{\theta} = \omega$ (定数) の場合は、$\ddot{\theta} = 0$ なので、この項は $0$ になります。
どちらの力も、$r = \sqrt{X^2 + Y^2}$ に比例します。


第 $3$ 項がコリオリ力です。この慣性力は速度に比例し、また速度ベクトルに直交する向きであることが分かります。$\dot{\theta} > 0$ つまり反時計回りの場合、速度ベクトル $\boldsymbol{v} = \left(\dot{X}, \ \dot{Y} \right)$ を $-90^{\circ}$ 回転した方向、つまり進行方向の右向きに力を受けます。大きさは $2m|\boldsymbol{v}| \dot{\theta}$ です。時計回りの場合は左向きに力を受けます。






ABC349 F - Subsequence LCM

問題 (difficulty = 2169)
atcoder.jp



解説
時間内に解けませんでした…
$M \le 10^{16}$ なので、$O(\sqrt{M})$ の素因数分解がギリギリできます。また、一般に素因数は少ないです。小さい順から $14$ 個の素数の積 $2 \times 3 \times 5 \times 7 \times 11 \times 13 \times 17 \times 19 \times 23 \times 29 \times 31 \times 37 \times 41 \times 43 = 1.3 \times 10^{16} > 10^{16} $ なので、$ M $ の素因数 $ p_k $ の個数 $K$ は高々 $13$ 個です。従ってそれぞれの $ p_k $ について、$ M $ が $ p_k$ を持つ個数 $ e_k $ *1 に、部分列の最小公倍数が、既になっているか否かの flag を持った bit DP が考えられます。


まず $A_i$ の内、$ M $ の約数でないものを部分列に入れた瞬間明らかに条件を満たさないので、それらは無視していいです。
それぞれの $A_i$ で $ p_k$ ごとに分解して考えるのがよさそうです。$ p_k$ について、$A_i$ の持つ個数が $ e_k $ 未満であるならば、それは $0$ 個であるのと変わりません。なぜならそうであるならば、$ e_k $ 個を持つ数をあとでどうせ部分列にいれなければならないからです。
例えば $ M = 36$ のとき、$ A = \{2, 9, 4, 12 \} $ でも $ A = \{1, 9, 4, 12 \} $ でも状況が変わらないことが分かります。$A_1 = 2$ の場合、素因数 $2$ を $1$ 個持っていますが、部分列の最小公倍数を $12$ (素因数 $2$ を $2$ 個持つ) にするには、どのみち後で素因数 $2$ を $2$ 個持つ $4$ か $12$ を部分列に入れなければなりません。従って、$A_1 = 1$ と状況が変わりません。すなわち、素因数が何個か、ではなく、素因数の個数が $ e_k $ 未満か、$ e_k $ に等しいか、だけが大事で*2それを $0, \ 1$ で管理すればよいです。
以上より、全ての $A_i$ を $2^K$ 通りの状態にまとめることができます。部分列の積の状態も $2^K$ 通りにまとめることができます。これで bit DP をすれば、この DP 部分の計算量は $O(2^K \times 2^K)$ つまり $O(4^K)$ です。$4^{13} = 6.7 \times 10^7$ なので間に合います。
ただ、このように $A_i$ をまとめて計算量を削減しなくても、 $O(N 2^K)$ で bit DP できますが、速い言語ならそれも意図せず通ってしまうようです。
遷移の詳細については、以下の実装例を見てください。


(1) $O(N 2^K)$ の bit DP (C++). 448 ms. これでもまあまあ余裕があります。

#include "bits/stdc++.h"
#include <atcoder/all>
using namespace atcoder;
using namespace std;

#define rep(i, n) for(long long i = 0; i < (n); ++i)
#define rrep(i, n) for(long long i = (n) - 1; i >= 0; --i)
#define PII pair<int, int>

typedef long long ll;
constexpr int MOD = 998244353;  // 7 * 17 * 2^23 + 1




// 繰り返し2乗法 (非再帰)
// T = modint でも動く。
template<typename T = long long>
constexpr T my_pow(T N, long long a) {
	assert(0 <= a);
	T x = N, res = (T)1;
	while (a) {
		if (a & 1) res *= x;
		x *= x; // x は *this の (2のべき乗) 乗を管理する。
		a >>= 1;
	}
	return res;
}




// 素因分解アルゴリズム (O(sqrt(N)). 
// T = long long (defalt)
template<typename T = long long>
vector<pair<T, T>> prime_factor(T N) {
	vector<pair<T, T>> res;

	T i = 2;
	while (i * i <= N) {
		if (N % i == 0) res.push_back({ i, 0 });
		while (N % i == 0) {
			res.back().second++;
			N /= i;
		}

		i += 1 + (i % 2); //i == 2 の場合だけ +1, その他の場合は +2
	}

	if (N > 1) {
		//sqrt((元の N)) より大きな素因数は高々1つしかない。
		res.push_back({ N, 0 });
		res.back().second++;
	}
	return res;
}




signed main() {
	ll N, M;
	cin >> N >> M;

	vector<ll> A(N);
	rep(i, N) cin >> A[i];

	//A[i] を個数で管理。M を割り切らないものは無視。
	map<ll, ll> cnt;
	rep(i, N) if (M % A[i] == 0) cnt[A[i]]++;


	//素因数が 0 個で壊れそうなので、M = 1 は別で処理。
	if (M == 1) {
		cout << (my_pow((modint998244353)2, cnt[1]) - 1).val() << endl;
		return 0;
	}

	auto mp = prime_factor<ll>(M);
	int K = mp.size();

	//(p_k)^(e_k) をあらかじめ計算しておく。
	vector<ll> beki(K);
	rep(k, K) beki[k] = my_pow(mp[k].first, mp[k].second);

	vector<modint998244353> dp(1LL << K, 0);
	dp[0] = 1;


	for (auto&& iter = cnt.begin(); iter != cnt.end(); iter++) {
		modint998244353 T = my_pow((modint998244353)2, iter->second);

		int flag = 0;
		rep(k, K) {
			if (iter->first % beki[k] == 0) flag |= 1LL << k;
		}

		//ナップサック dp おなじみの、1行しか状態を持たないで、逆から遷移する工夫。
		rrep(bit, 1LL << K) {
			//1個も選ばない場合は除くので、T - 1
			dp[bit | flag] += dp[bit] * (T - 1);
		}
	}


	cout << dp[(1LL << K) - 1].val() << endl;
}

atcoder.jp




(2) $O(4^K)$ の bit DP (C++). 193 ms. 確かに (1) より大分早くなっています。

#include "bits/stdc++.h"
#include <atcoder/all>
using namespace atcoder;
using namespace std;

#define rep(i, n) for(long long i = 0; i < (n); ++i)
#define rrep(i, n) for(long long i = (n) - 1; i >= 0; --i)
#define PII pair<int, int>

typedef long long ll;
constexpr int MOD = 998244353;  // 7 * 17 * 2^23 + 1




// 繰り返し2乗法 (非再帰)
// T = modint でも動く。
template<typename T = long long>
constexpr T my_pow(T N, long long a) {
	assert(0 <= a);
	T x = N, res = (T)1;
	while (a) {
		if (a & 1) res *= x;
		x *= x; // x は *this の (2のべき乗) 乗を管理する。
		a >>= 1;
	}
	return res;
}




// 素因分解アルゴリズム (O(sqrt(N)). 
// T = long long (defalt)
template<typename T = long long>
vector<pair<T, T>> prime_factor(T N) {
	vector<pair<T, T>> res;

	T i = 2;
	while (i * i <= N) {
		if (N % i == 0) res.push_back({ i, 0 });
		while (N % i == 0) {
			res.back().second++;
			N /= i;
		}

		i += 1 + (i % 2); //i == 2 の場合だけ +1, その他の場合は +2
	}

	if (N > 1) {
		//sqrt((元の N)) より大きな素因数は高々1つしかない。
		res.push_back({ N, 0 });
		res.back().second++;
	}
	return res;
}




signed main() {
	ll N, M;
	cin >> N >> M;

	vector<ll> A(N);
	rep(i, N) cin >> A[i];

	//A[i] を個数で管理。M を割り切らないものは無視。
	map<ll, ll> cnt;
	rep(i, N) if (M % A[i] == 0) cnt[A[i]]++;


	//素因数が 0 個で壊れそうなので、M = 1 は別で処理。
	if (M == 1) {
		cout << (my_pow((modint998244353)2, cnt[1]) - 1).val() << endl;
		return 0;
	}

	auto mp = prime_factor<ll>(M);
	int K = mp.size();


	//(p_k)^(e_k) をあらかじめ計算しておく。
	vector<ll> beki(K);
	rep(k, K) beki[k] = my_pow(mp[k].first, mp[k].second);


	//2^K の状態の個数を数える。
	vector<ll> state(1LL << K, 0);
	for (auto&& iter = cnt.begin(); iter != cnt.end(); iter++) {
		int flag = 0;
		rep(k, K) {
			if (iter->first % beki[k] == 0) flag |= 1LL << k;
		}
		state[flag] += iter->second;
	}


	vector<modint998244353> dp(1LL << K, 0);
	dp[0] = 1;


	rep(bit1, 1LL << K) {
		modint998244353 T = my_pow((modint998244353)2, state[bit1]);

		//ナップサック dp おなじみの、1行しか状態を持たないで、逆から遷移する工夫。
		rrep(bit2, 1LL << K) {
			//1個も選ばない場合は除くので、T - 1
			dp[bit2 | bit1] += dp[bit2] * (T - 1);
		}
	}


	cout << dp[(1LL << K) - 1].val() << endl;
}

atcoder.jp






*1:$ つまり、M = p_1^{ \ \ e_1} \cdots p_K^{ \ \ e_K} としています。$

*2:$ M $ を割り切らない $A_i$ は無視しているので、$ e_k $ より大きいことはありません。

2007 京都大学 理系 乙[1] (1) (定積分)

問題

$$ \mbox{定積} \mbox{分} \ \int_0^{2} \frac{2x + 1}{\sqrt{x^2 + 4}}\mathrm{d}x \ を求めよ。 $$






解答
\begin{equation}
I = \int_0^{2} \frac{2x + 1}{\sqrt{x^2 + 4}}\mathrm{d}x
\end{equation} と置くと、
\begin{equation}
I = \int_0^{2} \frac{2x}{\sqrt{x^2 + 4}}\mathrm{d}x + \int_0^{2} \frac{1}{\sqrt{x^2 + 4}}\mathrm{d}x \tag{A}
\end{equation} を得る。
\begin{equation}
I_1 = \int_0^{2} \frac{2x}{\sqrt{x^2 + 4}}\mathrm{d}x, \ \ \ I_2 = \int_0^{2} \frac{1}{\sqrt{x^2 + 4}}\mathrm{d}x
\end{equation} と置く。$x^2 = t$ の置換により、
\begin{split}
I_1 &= \int_0^{4} \frac{1}{\sqrt{t + 4}}\mathrm{d}t \\
&= \int_0^{4} \frac{1}{\sqrt{t + 4}}\mathrm{d}t \\
&= \left[ 2\sqrt{t + 4} \right]_0^4 \\
&= 4\sqrt{2} - 4 \\
\end{split} を得る。また、$I_2$ に関しては、$x = 2\sin \hspace{-1.5pt} \mathrm{h} u$ と置換すると、$x / 2 = x'$ と置いたとき、
\begin{equation}
x' = \frac{e^u - e^{-u}}{2}
\end{equation} であるから、両辺に $2e^u > 0$ をかけて整理すると、
\begin{equation}
e^{2u} - 2x'e^{u} - 1 = 0
\end{equation} を得る。二次方程式の解の公式と、$e^u > 0$ から、
\begin{equation}
e^{u} = x' + \sqrt{x'^2 + 1}
\end{equation} を得る。従って、
\begin{equation}
u = \log \left|\frac{x}{2} + \sqrt{\left( \frac{x}{2} \right)^2 + 1} \right|
\end{equation} である。従って、
\begin{split}
I_2 &= \int_0^{\log \left( 1 + \sqrt{2} \right)} \frac{1}{\sqrt{4 \sin \hspace{-1.5pt} \mathrm{h}^2 u + 4}} 2\cos \hspace{-1.5pt} \mathrm{h}u \mathrm{d}u \\
&= \int_0^{\log \left( 1 + \sqrt{2} \right) } \mathrm{d}u \ \ \left(\because \cos \hspace{-1.5pt} \mathrm{h}u > 0 \ より、\sqrt{\sin \hspace{-1.5pt} \mathrm{h}^2 u + 1} = |\cos \hspace{-1.5pt} \mathrm{h}u| = \cos \hspace{-1.5pt} \mathrm{h}u \right) \\
&= \log \left( 1 + \sqrt{2} \right)
\end{split} となる。以上より、式 $\mathrm{(A)}$ から、
\begin{equation}
I = 4 \left(\sqrt{2} - 1 \right) + \log \left( 1 + \sqrt{2} \right)
\end{equation} を得る。








解説
$I_1$ は簡単な置換積分の問題です。難しいのは $I_2$ の方ですが、これは双曲線関数による置換が便利です。詳しくは以下の記事も参考にしてください。
mathkyopro.hatenablog.com





2024 九州大学 理系 [3]

問題
以下の問に答えよ.

$$ \mbox{(1) 自然} \mbox{数} \ a, \ b \ が、a < b \ \text{を満たすとき、} \frac{b!}{a!} \ge b \ が成り立つことを示せ. $$
$$ (2) \ 2 \cdot a! = b! \ を満たす \mbox{自然} \mbox{数} の組 \ \left( a, \ b \right) \ をすべて求めよ. $$
$$ (3) \ a! + b! = 2\cdot c! \ を満たす \mbox{自然} \mbox{数} の組 \ \left( a, \ b, \ c \right) \ をすべて求めよ. $$




解答
(1) 階乗は単調増加であることと、$a < b$ より $a \le b - 1$ であることから、$a! \le (b - 1)!$ である。従って、
\begin{equation}
\frac{b!}{a!} \ge \frac{b!}{(b - 1)!} = b
\end{equation} であり、題意が言えた。



(2) (1) より、
\begin{equation}
2 = \frac{b!}{a!} \ge b
\end{equation} である。これを満たす自然数 $b$ は $1, \ 2$ のみである。
$b = 1$ のとき、与式は $ 2 \cdot a! = 1$ であるが、これを満たす自然数 $a$ は存在しない。
$b = 2$ のとき、与式は $ 2 \cdot a! = 2$ つまり $a! = 1$ であるが、これを満たす自然数 $a$ は $1$ のみである。
以上より、解は $\left( a, \ b \right) = (1, \ 2).$



(3) 以下の (A) (B) に場合分け出来る。
(A) $a = b$ のとき
与式は $b ! = c!$ となる。
従ってこのとき、任意の自然数 $n$ に対して、$\left( a, \ b, \ c \right) = (n, \ n, \ n)$ が解。

(B) $a \neq b$ のとき
$a < b$ としても一般性を失わない。 このとき $2 \le b$ である。
$2\cdot c! = a! + b! < 2\cdot b!$ であるため、$c! < b!$ つまり $c < b$ を得る。
このとき、
\begin{split}
2 \cdot c! &\le 2(b - 1)! \ \ (\because c \le b - 1)\\
&\le b \cdot (b - 1)! \ \ (\because 2 \le b) \\
&= b! \\
&< a! + b!
\end{split} であり、不適。


以上より解は (A) のみであり、それは、任意の自然数 $n$ に対して $\left( a, \ b, \ c \right) = (n, \ n, \ n)$ である。