Archimedes erhielt einen ungefähren Wert des Umfangsverhältnisses durch Berechnung der Umfangslänge in der Reihenfolge des regulären Sechsecks, des regulären 12-seitigen, des regulären 24-seitigen, des regulären 48-seitigen und des regulären 96-seitigen Umschreibens des Kreises. tsujimotters Notizbuch "Archimedes und Umfangsverhältnis" Zu diesem Zeitpunkt war der Dezimalpunkt noch nicht erfunden und wurde als Verhältnis von ganzen Zahlen ausgedrückt. Trotz dieser Einschränkungen wollte Archimedes kleiner als 3 und 1/7 und größer als 3 und 10/71 sein. (In Dezimalzahlen zwischen 3.1428571428571429 und 3.1408450704225352) Mit Hilfe der Programmierung habe ich versucht herauszufinden, wie genau das Umfangsverhältnis berechnet werden kann, indem ich mit der Archimedes-Methode fortgefahren bin.
Die Archimedes-Methode selbst ist im Notizbuch des vorherigen Tujimotter genau beschrieben. Wenn Sie also interessiert sind, schauen Sie bitte dort nach. Hier werden beim Erstellen des Programms nur die erforderlichen Proofs aufgelistet. Unter der Annahme, dass der Umfang des regulären n-seitigen Quadrats L ist und der Radius des umschreibenden Kreises 1 ist, beträgt der Umfang 2π, so dass der ungefähre Wert des Umfangsverhältnisses basierend auf dem regulären n-seitigen Quadrat L / 2 ist.
L=F(0)B×2×6 F (0) B = 1 / √3 * Da ∠F (0) OB 30 ° beträgt (△ OF (0) C ist ein reguläres Dreieck) Der ungefähre Wert des Umfangsverhältnisses basierend auf dem regulären Sechseck ist L ÷ 2 = 1 / √3 × 2 × 6 ÷ 2 = 2 × √3 ≒ 3.464.
L=F(1)B×2×12 F(1)B = OB× F(0)B ÷(OB+F(0)O)= F(0)B ÷(1+√(1+F(0)B× F(0)B)) Der ungefähre Wert des Umfangsverhältnisses basierend auf dem regulären Zwölfeck ist L ≤ 2 ≤ F (1) B × 2 × 12 ≤ 2 ≤ 3,215. ** Beweis ** Zeichnen Sie eine gerade Linie durch F (0) parallel zu F (1) O und lassen Sie A den Schnittpunkt mit der Erweiterung von OB sein. Da ΔOBF (1) und ΔABF (0) ähnlich sind, gilt Folgendes. F(1)B:OB = F(0)B:(OB+OA) Da außerdem ΔOF (0) A ein gleichschenkliges Dreieck ist, ist F (0) O = OA F (0) O wird aus √ (OB × OB + F (0) B × F (0) B) unter Verwendung des Satzes von Pitagolas erhalten.
In ähnlicher Weise ist der ungefähre Wert des Umfangsverhältnisses basierend auf der regulären n-seitigen Form wie folgt. L÷2=F(n)B×2×n÷2 = F(n-1)B÷(1+√(1+F(n-1)B× F(n-1)B))×n
Das obige Ergebnis wird in Python wie folgt implementiert.
import math
import itertools
def f(n):
if n == 0: return math.sqrt(3)/3
return f(n-1)/(1+math.sqrt(1+f(n-1)**2))
N = int(input())
for n in range(N):
print(f(n)*6*2**n)
Da es jedoch das Mendou ist, das ein reguläres n-seitiges Quadrat genau eingibt, ist der Eingabewert N wie folgt. 0… Berechnen Sie ein reguläres Sechseck 1… Berechnen Sie bis zum regulären Zwölfeck 2… Berechnen Sie bis zu einem regulären 24-Quadrat Gleiches gilt weiter unten. Da der obige Algorithmus eine Berechnungsmenge von O (2 ** n) erfordert, habe ich ihn wie folgt mit DP umgeschrieben. Da es außerdem nicht möglich ist, die Zahlen nach dem Dezimalpunkt in Binärzahlen (*) genau darzustellen, haben wir uns entschlossen, die Zahlen auf 15 Stellen zu beschränken und sie bei der Ausgabe zu formatieren.
import math
import itertools
def pi2s(pi):
return str(pi)[0] + "." + str(pi)[1:]
def regN(n):
return format(n, '10d') + ": "
R = 1732050807568877
B = 1000000000000000
pi = "3.14159265358979323846264338327950288"
N = int(input())
F = [0.0 for n in range(N)]
F[0] = B
for n in range(1, N):
F[n] = F[n-1]*R/(R+math.sqrt(F[n-1]**2+R**2))
for n, v in enumerate(F):
print(regN(6*2**n) + pi2s(int(v*6*2**n*B/R)))
print(format("pi: ", '>12') + pi[:17])
Es ist das Ergebnis der Berechnung bis zu ** regulären 3145728 Quadrat **. Π wird in der letzten Zeile ausgegeben. Sie können sehen, dass die Werte ziemlich genau sind.
Ich habe versucht, die Methode von Archimedes durch Programmierung zu verfolgen. Entgegen meinen eigenen Erwartungen war ich überrascht, dass es schon ziemlich früh (48-seitig) nahe bei 3,14 lag. Für Archimedes, der dies von Hand und anhand des Verhältnisses von ganzen Zahlen (Brüchen) berechnete, nahm er einfach seinen Hut ab.
Recommended Posts