三角函数:如何在不使用“math”模块的情况下编写正弦和余弦函数的代码?
我一直在为我为 Discord Bot 制作的模块编写代码。我一直在尝试不使用任何模块,因为它对导入东西没有帮助。所以我想我应该自己为他们两个写代码。
这里的问题是我真的不知道我们如何制作它们。我在网络上的任何地方都找不到它们,因为到处都只看到使用了math我不想使用的模块。
我不知道如何与他们合作,所以我需要一些帮助。
谢谢你!:)
回答
使用泰勒展开,您可以获得达到所需精度的近似值。
http://hyperphysics.phy-astr.gsu.edu/hbase/tayser.html
def pow(base, exponent):
return base ** exponent
def faktorial(n):
value = float(1)
for i in range(1, n+1):
value = value * i
return value
def cos(x):
x = x * 3.14/180
value = 1
sign = -1
n = 200 # precision
i = 2
while i < n:
value = value + (pow(x, i)/faktorial(i) * sign)
i = i + 2
sign = sign * -1
return value
def sin(x):
x = x * 3.14/180
value = x
sign = -1
n = 200 # precision
i = 3
while i < n:
value = value + (pow(x, i)/faktorial(i) * sign)
i = i + 2
sign = sign * -1
return value