import numpy as np
#なんたらのアルゴリズム。いっぱい繰り返す
def GaussRegendre(N):
#初項
a = 1.0
b = np.sqrt(2) / 2
t = 1 / 4
p = 1
for i in range(N): #←コレ、iが0からN-1までの間以下を繰り返すらしいですよ?
#漸化式(?)に従い、次の項を計算
a_new = (a + b) / 2
b_new = np.sqrt(a * b)
t_new = t - p * (a - a_new)**2
p_new = 2 * p
#古い値を新しい値に置き換え
a = a_new
b = b_new
t = t_new
p = p_new
pi = (a + b)**2 / (4 * t) #円周率の計算(ここすき)
return pi
#出力
print("GaussRegendre(1) = " + str(GaussRegendre(1)))
print("GaussRegendre(2) = " + str(GaussRegendre(2)))
print("GaussRegendre(3) = " + str(GaussRegendre(3)))
aW1wb3J0IG51bXB5IGFzIG5wCgoj44Gq44KT44Gf44KJ44Gu44Ki44Or44K044Oq44K644Og44CC44GE44Gj44Gx44GE57mw44KK6L+U44GZCmRlZiBHYXVzc1JlZ2VuZHJlKE4pOgogICAgI+WInemghQogICAgYSA9IDEuMAogICAgYiA9IG5wLnNxcnQoMikgLyAyCiAgICB0ID0gMSAvIDQKICAgIHAgPSAxCgogICAgZm9yIGkgaW4gcmFuZ2UoTik6ICPihpDjgrPjg6zjgIFp44GMMOOBi+OCiU4tMeOBvuOBp+OBrumWk+S7peS4i+OCkue5sOOCiui/lOOBmeOCieOBl+OBhOOBp+OBmeOCiO+8nwogICAgCiAgICAgICAgI+a8uOWMluW8j++8iO+8n++8ieOBq+W+k+OBhOOAgeasoeOBrumgheOCkuioiOeulwogICAgICAgIGFfbmV3ID0gKGEgKyBiKSAvIDIKICAgICAgICBiX25ldyA9IG5wLnNxcnQoYSAqIGIpCiAgICAgICAgdF9uZXcgPSB0IC0gcCAqIChhIC0gYV9uZXcpKioyCiAgICAgICAgcF9uZXcgPSAyICogcAoKICAgICAgICAj5Y+k44GE5YCk44KS5paw44GX44GE5YCk44Gr572u44GN5o+b44GICiAgICAgICAgYSA9IGFfbmV3CiAgICAgICAgYiA9IGJfbmV3CiAgICAgICAgdCA9IHRfbmV3CiAgICAgICAgcCA9IHBfbmV3CgogICAgcGkgPSAoYSArIGIpKioyIC8gKDQgKiB0KSAj5YaG5ZGo546H44Gu6KiI566X77yI44GT44GT44GZ44GN77yJCiAgICByZXR1cm4gcGkKCiPlh7rlipsKcHJpbnQoIkdhdXNzUmVnZW5kcmUoMSkgPSAiICsgc3RyKEdhdXNzUmVnZW5kcmUoMSkpKQpwcmludCgiR2F1c3NSZWdlbmRyZSgyKSA9ICIgKyBzdHIoR2F1c3NSZWdlbmRyZSgyKSkpCnByaW50KCJHYXVzc1JlZ2VuZHJlKDMpID0gIiArIHN0cihHYXVzc1JlZ2VuZHJlKDMpKSk=