Tag: 数学

数学能力运算符未按预期工作

short sho1, sho2; printf(“Enter two shorts.\n”); scanf(“%hd %hd”, &sho1, &sho2); printf(“%hd^%hd is %hd.\n”, sho1, sho2, sho1^sho2); 当我输入’2 2’时,我得到这个输出: 2 ^ 2是0。 怎么会? 我在Eclipse中使用MinGW GCC编译器,以防万一。

你如何找到两点之间的相对影响?

double computeHeading(double latitude1, double longitude1, double latitude2, double longitude2) { double degToRad = PI / 180.0; double phi1 = latitude1*degToRad; double phi2 = latitude2*degToRad; double lam1 = longitude1*degToRad; double lam2 = longitude2*degToRad; double x,y; x = cos(phi2) * sin(lam2-lam1); printf(“X is %lf\n”, x); y = cos(phi1) * sin(phi2) – sin(phi1) * cos(phi2) * cos(lam2-lam1); printf(“Y […]

C – 使用sscanf读取算术运算符

我正在读一个字符串,它有两个数字,它们之间有一个算术运算符,就像其中一个: A1 + B1 A1 – B1 A1 * B1 A1 / B1 我可以读A1和B1但不能读操作符。 我正在读这个: while (sscanf(matrix[i][c] + offset, “%c%d%*c%n”, &col, &line, &readCharCount) == 2) { // do something } 我该怎么做才能阅读操作员?

将毫秒转换为分钟

如何在Objective-C或C中将毫秒转换为分钟或小时?

使用三角法绘制实心圆

我是否可以创建任何function,以便使用基本绘图function绘制实心圆: putpixel(x, y); lineto(x, y); ? 请注意,它必须使用三角函数(videlicet sin , cos等…), 因此我可以轻松地将其转换为六边形甚至更远 – 方形或其他类型的多边形。 最后,不一定但总是被欣赏,如果绘图不是很慢(一个循环应该足够我认为),甚至更不一定,但如果它不是太复杂和/或由更多组成,总是更感激比轻量化生活所需的线条。

有没有办法调整这个非线性方程组

过去两天我一直在解决这个问题但没有成功。 说我们有这个系统: 在以下情况下有无数的解决方案: 为了获得角度Theta的值,我使用这个公式: 我得到的值是正确的,但仅限于某些点,因为系统不可解决。 这是它的样子: 红色曲线表示“必须”值,蓝色曲线表示我实际得到的值。 在绘制总和的值之后: 这是我得到的: 正如你可以看到它的正弦曲线,这似乎影响了角度的“必须”值。 为了模拟这个,我一直在使用这个程序: #include #include int main (){ float xin =0; float yin =0; float zin =0; float A =0; float B =0; float C =0; float angle =0; float outangle =0 ; float angledeg =0; while (angledeg <=(360*3)) { angle = angledeg * M_PI/180; xin = […]

64位数学运算,不会丢失任何数据或精度

我相信128位数据没有任何便携式标准数据类型。 因此,我的问题是如何在不使用现有标准数据类型丢失数据的情况下有效地执行64位操作。 例如:我有两个uint64_t类型变量: uint64_t x = -1; uint64_t y = -1; 现在,如何存储/检索/打印数学运算的结果,如x+y, xy, x*y and x/y ? 对于上面的变量,x + y得到-1的值,实际上是带有进位1的0xFFFFFFFFFFFFFFFFULL。 void add (uint64_t a, uint64_t b, uint64_t result_high, uint64_t result_low) { result_low = result_high = 0; result_low = a + b; result_high += (result_low < a); } 如何像add一样执行其他操作,从而提供适当的最终输出? 如果有人共享通用算法,我会很感激,这些算法可以解决使用这些操作可能出现的溢出/下溢等问题。 任何可能有帮助的标准测试算法。

NxN矩阵行列式递归问题

我目前正在尝试编写一个程序来找到NxN矩阵的行列式,但我有一个N大于2的递归问题。基本上我可以告诉它,它没有这样做,它只是运行一次使用函数我的调试选项显示该函数在列中运行,但顺序永远不会下降,然后无论如何,它都会为我的行列式提供零。 香港专业教育学院曾试图寻找任何想法,因为我做错了什么,但我似乎找不到任何答案,我甚至找到了与我做基本相同的事情的例子,使用它们给我零,不管怎么样,所以我非常困惑:(。如果有人可以快速查看我的代码并告诉我哪里是一个白痴,我会非常感激!(抱歉格式化,它在我的编辑器中看起来不错但我似乎无法得到它在这里) 码: #include #include #include double det(double **mat, int order); int main (int argc, char* argv[]) { FILE* input; int row,column,N; double **matrix; N=3; matrix=(double**)malloc(N*sizeof(double)); input=fopen(“matrix.dat”, “r”); if(input !=(FILE*) NULL) { for(row=0; row<N; row++) { matrix[row]=(double*)malloc(N*sizeof(double)); } for(row=0; row<N; row++) { printf("| "); for(column=0; column<N; column++) { fscanf(input,"%lf ", &matrix[row][column]); printf("%g ", matrix[row][column]); } […]

加权随机整数

我想为随机生成的数字指定权重,权重如下所示。 0 | 1 | 2 | 3 | 4 | 5 | 6 ───────────────────────────────────────── X | X | X | X | X | X | X X | X | X | X | X | X | X | X | X | X | X | | X | X | […]

spoj factorial(超出时间限制错误)。 我该如何改进我的解决方案?

这是我关于spoj的问题的链接。 我已经尝试使用递归和非递归。 但我超时限制错误。 我该如何改进我的解决方案? 我已经展示了以下两种解决方案。 A)非递归方法。 #include int main() { long long int t,n,i,j=0,y; unsigned long long int fact; scanf(“%lld”,&t); i=t; while(i>0) { scanf(“%lld”,&n); fact=1; for(y=1;y<=n;y++) fact=fact*y; j=0; while(fact%10==0) j++; printf("\n%lld",j); i–; } return 0; } B)非递归 #include unsigned long long int fact(long long int); int main() { long long int t,n,i,j=0; unsigned long long […]