第1关:割圆法
任务描述
本关任务:编写一个能计算割圆术的小程序。
相关知识
割圆术
国魏晋时期的数学家刘徽于公元263年撰写《九章算术注》,其中就有数学史上著名的“割圆术”。刘徽形容他的“割圆术”说:割之弥细,所失弥少,割之又割,以至于不可割,则与圆合体,而无所失矣。这包含了求极限的思想。通过求圆内接正多边形的周长来近似求圆的周长,并使正多边形的周长无限接近圆的周长,进而求得较为精确的圆周率。
# π=周长/(2*圆的半径)得到π的近似值。
# 半径为1的圆内接正6边形边长也是1
# 边长 side_length
# 半径 radius
# 圆周率 pi
# 三角形的高 height
import math
def cutting_circle(times): # times为分割次数
side_length = 1 # 初始边长
edges = 6 # 初始边数
for i in range(times):
height = 1 - math.sqrt(1 - (side_length / 2) ** 2)
side_length = math.sqrt(height ** 2 + (side_length / 2) ** 2)
edges = edges * 2 # 每割一次,边数量加倍
pi = side_length * edges / 2
return edges, pi
if __name__ == '__main__':
times = int(input()) # 割圆次数
print('分割{}次,边数为{},圆周率