Tag: 数学

如何将循环转换为数学方程式?

我的程序中有以下两个循环,我正在尝试将它们写成数学方程式,但是我很难找到一个简洁的方法来执行此操作: // Loop1 for (int i = 0; i < nr; i++) { array[i] = nepr; } // Loop2 for (int i = 0; i < (nvr % nr); i++) { array[i]++; } 代码完全是函数,但我试图在我正在编写的文档中表达这些循环。 任何帮助将非常感谢。 到目前为止我有这个: array[i] = nepr, i = 0,…,(nr-1) 但是我不确定如何将第二个循环结合到等式中,或者为它写出第二个等式。

计算正实数的乘法逆

我想在不使用除法的情况下计算正实数的乘法逆。 在阅读了Newton Raphson方法的各个页面后,我实现了以下用于计算逆的代码: #define PRECISION 0.1e-5 double inverse(double num) { double ans = num; while (ans * num > 1 + PRECISION || ans * num < 1 – PRECISION) { ans = ans * (2 – num * ans); } return ans; } 现在,问题是,我实际上没有得到逆值。 循环无限循环。 所以,我注意到的第一件事是: ans的价值变为负数,我补充说 if (ans < 0) ans *= -1; […]

查找整数的所有因子的有效算法是什么?

我正在编写一个非常简单的程序来检查一个数字是否可以均匀地划分另一个数字: // use the divider squared to reduce iterations for(divider = 2; (divider * divider) <= number; divider++) if(number % divider == 0) print("%d can divided by %d\n", number, divider); 现在我很好奇是否可以通过找到数字的平方根并将其与分频器进行比较来完成任务。 但是,似乎sqrt()实际上无法提高效率。 如何在C中处理sqrt()以及如何提高sqrt()的效率? 此外,还有其他方法可以更高效地解决问题吗? 而且, number % divider == 0 用于测试分频器是否可以均匀划分数字,除了使用%之外还有更有效的方法进行测试吗?

由不准确的数据类型导致的计算不准确

#include #include int main(){ int num,onum,numl=0,tem,nnum=0; printf(“Enter num: “); scanf(“%d”, &num); onum =num; while (num!=0){ num = num/10; ++numl; } num = onum; while (num!=0){ tem = num%10; nnum += pow(tem,numl); printf(“%d”,nnum); num /= 10 ; } if (nnum == onum){ printf(“is”); } else{ printf(“not”); } } 与其他自恋数字一起工作正常。 但是当输入153,5 ** 3错误地计为124时,为什么? 这个问题与许多问题重复。 以下答案是最容易理解的答案。 在一句话中,不准确的计算是由{不准确的{数据类型使用}或{编译器}或{FPU}}引起的。 我通过将编译器更新为gcc […]

使用二进制搜索在C中查找数字的平方根

试图使用二进制搜索计算出数字的平方根,但是我的实现不起作用,我不知道为什么 – 任何帮助表示赞赏,谢谢 inheritance我的代码。 ‘end’是我希望平方根的数字的值 while(start <= end) { float mid = ((start + end) / 2); printf("\nhalving mid"); if(mid * mid == end){ sqrt = mid; printf("\nsqrt = %d", sqrt); } if(mid * mid < end){ start = mid + 1; sqrt = mid; printf("\nsqrt: %d", sqrt); } else{ start = mid – 1; […]

仅在C / C ++中使用标头时?

是否通常使用像“vec3”这样的类只有标题? 这是我的实际代码: #ifndef VECTOR3_H #define VECTOR3_H #include class vec3 { public: double x, y, z; vec3(); vec3(double x, double y, double z) : x(x), y(y), z(z) {} double lenght() { return sqrt(pow(x, 2) * pow(y, 2) * pow(z, 2));} double lenghtSquared() { return pow(x, 2) + pow(y, 2) + pow(z, 2);} double distance(vec3 v) { […]

cosf(M_PI_2)不返回零

今天早上突然开始。 这是原创的 float angle = (x+90)*(M_PI/180.0); float xx = cosf(angle); float yy = sinf(angle); 放入断点并hover光标后..我得到yy的正确答案为1.但xx不为零。 我尝试过cosf(M_PI_2); 仍然没有运气..它工作正常,直到昨天..我没有改变任何编译器设置等.. 我正在使用截至今天的Xcode最新版本

梯形波方程的方程

我正在写交流function来产生梯形波。 有没有人知道产生梯形波的数学方程式? 与y = A * sin(B * x)非常相似的想法为不同的x值产生正弦波。

目标C:7 – 1 = 3?

NSLog(@”Before: %d”,currentArticle); currentArticle–; NSLog(@”SUBTRACT %d”,currentArticle); “currentArticle”是一个整数。 这只是在我的控制台中回显一次。 如果我不运行此减法,则数字“currentArticle”保持为7。 这是在主线程中运行,每个用户交互只运行一次。 我也试过了 currentArticle = currentArticle – 1; 结果相同。 我服用疯狂的药吗? 谢谢! 编辑: 声明如下: extern int *currentArticle; 稍后分配为: currentArticle = 0; 我尝试重写为: int *curArticle; // in my .h file curArticle = 1; 然后我跑了 curArticle–; 它仍然减少两个…… 我已经逐步完成了代码并确保没有其他调用这个变量。感谢您的反馈到目前为止,我会继续抨击它。

一种在C中找到无符号长整数(32位宽)的最接近素数的方法?

我正在寻找一种方法来找到最接近的素数。 大于或小于,无关紧要,只是最接近(没有溢出,最好是。)至于速度,如果它可以在1GHz机器上大约50毫秒计算它(在软件中,在Linux内运行),我会欣喜若狂。