2019年京都大学 理系数学 問6
i は虚数単位とする。 (1+i)^n + (1-i)^n > 10^{10} をみたす最小の正の整数 n を求めよ
pythonの虚数は j で表す。
ただし、
1 + i
のような値 は 1+1j
のように表記する というポイントがある。5iが5jになるのはわかるが・・・ 1+j
と書くと変数jが定義されていないということにハマるので注意。(ハマった)
虚数を含んだ複素数の実数部の取り出し
値は complex
クラスになるので、 .real
で行う。(虚数部はimag
)。両方共値としてはfloat
で返る。
解答例
2019-kyoto-06.py
n = 1
while True:
s = (1+1j)**n + (1-1j)**n
# s は明らかに実数
if (s.real > 10**10):
print(n)
break
n += 1
これで正解の 71
を得ました。