#/*********************************************************** # pi2.c -- 円周率 #***********************************************************/ # 相加相乗平均による方法 a = 1; b = 1 / Math::sqrt(2.0); s = 1; t = 4 for i in 0...3 last = a; a = (a + b) / 2; b = Math::sqrt(last * b) s -= t * (a - last) * (a - last); t *= 2 printf("%16.14f\n", (a + b) * (a + b) / s) end exit 0