円周率
つくば記念に。
static double Pi(int count) { double a = 1; double b = Math.Sqrt( 1 / 2.0 ); double t = 1 / 4.0; double p = 1; for ( int i = 0; i < count; i++ ) { double x = (a + b) / 2.0; double y = Math.Sqrt( a * b ); t = t - p * Math.Pow( x - a, 2 ); a = x; b = y; p *= 2; } return Math.Pow( a + b, 2 ) / (4 * t) ; }
結局は Math.PI なんですけど。