Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用C+中的伯努利级数展开计算角的余弦/正弦/正切+;不使用外部库_C++_Bernoulli Numbers - Fatal编程技术网

C++ 使用C+中的伯努利级数展开计算角的余弦/正弦/正切+;不使用外部库

C++ 使用C+中的伯努利级数展开计算角的余弦/正弦/正切+;不使用外部库,c++,bernoulli-numbers,C++,Bernoulli Numbers,我似乎找不到错误。我需要一双新眼睛。我试图计算C++中的COS/SIN/TAN的值,而不使用内置函数或库。这些是唯一的要求 到目前为止,我得到的是: 我编写了一个函数来计算指数值、阶乘和所需值 我不断地犯错误,我不知道它们是从哪里来的。有些数字给了我完全正确的答案,而另一些则相去甚远。你能告诉我我做错了什么吗 #包括 #包括 使用名称空间std; 双伯努利数[]={1,-1/2.0,1/6.0,-1/30.0,5/66.0,-691/2730.0,7/6.0,-3617/510.0,43867/

我似乎找不到错误。我需要一双新眼睛。我试图计算C++中的COS/SIN/TAN的值,而不使用内置函数或库。这些是唯一的要求

到目前为止,我得到的是: 我编写了一个函数来计算指数值、阶乘和所需值

我不断地犯错误,我不知道它们是从哪里来的。有些数字给了我完全正确的答案,而另一些则相去甚远。你能告诉我我做错了什么吗

#包括
#包括
使用名称空间std;
双伯努利数[]={1,-1/2.0,1/6.0,-1/30.0,5/66.0,-691/2730.0,7/6.0,-3617/510.0,43867/798.0,-174611/330.0,854513/138.0};
内角半径(内角){
浮动弧度角;
rad_角度=角度*(M_PI/180);
返回弧度角;
}
整数计算指数(整数、整数幂){
长双结果=1;
对于(int i=0;icout许多参数和变量都是
int
,但它们仅作为双精度变量

#包括
#包括
使用名称空间std;
双伯努利数[]={1,-1/2,1/6,-1/30,5/66,-691/2730,7/6,-3617/510,43867/798,-174611/330,854513/138};
双角度半径(内角){
双弧度角=角度*(M_PI/180);
返回弧度角;
}
angleToRadian
之前返回了一个
int
,圆中有pi弧度,因此360度以下的角度将捕捉到0、1、2或3弧度。您需要返回一个小数点以获得正确的转换

长双精度计算指数(双精度数值,整数幂){
长双结果=1;
对于(int i=0;i
calculatingExponents
中的
num
参数采用十进制角度作为
角度半径的结果,因此
num
result
calculatingExponents
的返回类型也都需要是浮点数

无符号长计算阶乘(int n){
无符号长阶乘=1;
if(n<0){

一个整数怎么能包含一个分数?在1之后的
伯努利数
数组中的每个数字要么是0,要么是一个没有分数的值。即使你把它设为浮点类型,它们仍然会因为整数除法而出错。你的阶乘函数会溢出。你需要应用一些代数。更详细的说明从逻辑上讲,你的“伯努利数”是
{1,0,0,0,0,1,-7,54,-529,6192}
双伯努利数[]={1,-1/2,1/6,
-->
{1,-1/2.0,1/6.0,
“我仍然有重大错误”太好了!很简单,谢谢你!输入的输出,看到的,输出的。非常感谢!解决了大部分错误,你的解释很棒!现在我明白了更多关于如何定义C++中的函数!我很确定谭的错误与你的伯努利数排序有关,你只想要那些偶数,但是你已经列出了零,1。st,2,4,6,在2s内上升,所以你的指数是错误的。Tan(x)的公式使用伯努利展开式,用B计算伯努利数₂ₙ₊₂还摆弄着棕褐色和伯努利色的数字:
Input: 180
Output: 
The Cosine of the angle = -0.989992
The Sine of the angle = 0.14112
The Tan of the angle = 3.49908e+07
Expected Outputs:
The Cosine of the angle = -1
The Sine of the angle = 0
The Tan of the angle = 0

Input: 60
Output:
The Cosine of the angle = 0.540302
The Sine of the angle = 0.841471
The Tan of the angle = 1705.3
Expected Outputs:
The Cosine of the angle = 0.5
The Sine of the angle = 0.86602540378
The Tan of the angle = 1.73205080757