Eli, eli.. Kerrotaan arctan(1) 4:lla, ja saadaan tarkasti pi.
Ohjelmoidaan pi, käytetään siihen atan potenssi sarjan kehittelmä
(Teknisesti acot on järkevämpi, käytetään sen)
paljonko=10000 def arccot(arg, tark): #arkkotangentti sarja sum = xpower = tark // arg #summa ja potenssi=kokonaisosa (tarkuus/argumentti) n = 3 # 3, 5, 7 ... merk = -1 # -3, 5, -7 ... while 1: #"ikuinen" toisto, break asti. xpower = xpower // (arg*arg) # x^3,x^5... termi = xpower // n #x^3/3, -x^5/5.. if not termi: #lasku paatyy jos tarkuus on savutettu break sum += merk * termi #osasumma=osasumma+merkki*termi merk = -merk #vaihdetaan merkki n += 2 #3,5,7 return sum def pi(nrot): #ei mitaan erikoista, "wrapper" tark = 10**(nrot + 10) pi = 4 * (4*arccot(5, tark) - arccot(239, tark)) return pi // 10**10 f = open("pi.txt","w+") print pi(paljonko) #ruutuun print >> f,pi(paljonko) #tiedostoon f.close() raw_input("Paina ENTER jatkoksi")
Ja tämä on hiukan muotoiltu lopputulos.
Ohjelman suorittaminen vaatii ActivePythonin, ja tässä on itse ohjelma.
2 comments
Comments are closed.