Tag: 数学

什么是C中的算术下溢和溢出?

算术下溢和溢出在C编程中意味着什么?

在C / C ++中实现派生

如何通过编程方式计算f(x)的导数以确保最大精度? 我正在实现Newton-Raphson方法,它需要获取函数的导数。

快速弧算法算法?

我有自己的,非常快的cos函数: float sine(float x) { const float B = 4/pi; const float C = -4/(pi*pi); float y = B * x + C * x * abs(x); // const float Q = 0.775; const float P = 0.225; y = P * (y * abs(y) – y) + y; // Q * y + P […]

计算从1到N的整数的出现次数

您将如何有效地计算从1到N的整数十进制表示中0的出现次数? eg The number of 0’s from 1 to 105 is 16. How? 10,20,30,40,50,60,70,80,90,100,101,102,103,104,105 计算0的数量,你会发现它16。 显然,不会赞赏蛮力方法。 你必须想出一种方法,它不依赖于“有多少数字落在1到N之间”。 我们可以通过看到某种模式来做到吗? 我们不能扩展这里编译的逻辑来解决这个问题吗?

如何检查我的字节标志?

我使用一个字节来存储一些标志,如10101010 ,我想知道如何validation特定位是1还是0 。

试验分裂对素数的条件测试

我的问题是关于试验部门的条件测试。 关于采用什么条件测试似乎存在争议。 我们来看看RosettaCode的代码。 int is_prime(unsigned int n) { unsigned int p; if (!(n & 1) || n < 2 ) return n == 2; /* comparing p*p <= n can overflow */ for (p = 3; p <= n/p; p += 2) if (!(n % p)) return 0; return 1; } 车轮分解或使用预定的素数列表不会改变我的问题的本质。 我可以想到三种情况来进行条件测试: P <= […]

x86上的有符号和无符号算术实现

C语言有签名和无符号类型,如char和int。 我不确定,它是如何在汇编级别实现的,例如在我看来,有符号和无符号的乘法会带来不同的结果,所以汇编是做无符号和有符号算术还是只有一个,这在某种程度上是模拟的不同的情况?

从最接近目标值的数组中选择值的算法?

我有一个几乎排序的值数组28个元素长。 我需要找到与算法提供的目标值相加的一组值(或者如果找不到精确的和,则最接近的总和低于目标值)。 我目前有一个简单的算法来完成这项工作,但它并不总能找到最佳匹配。 它在理想情况下使用一组特定的值工作,但我需要一个更强大和准确的解决方案,可以处理更多种类的数据集。 该算法必须用C语言编写,而不是用C ++编写,并且用于嵌入式系统,因此请记住这一点。 这是我目前的算法供参考。 它从可用的最高值开始迭代。 如果当前值小于目标总和,则将该值添加到输出并从目标总和中减去该值。 重复此过程,直到达到总和或用完值。 它假设一个几乎提升的排序列表。 //valuesOut will hold a bitmask of the values to be used (LSB representing array index 0, next bit index 1, etc) void pickValues(long setTo, long* valuesOut) { signed char i = 27;//last index in array long mask = 0x00000001; (*valuesOut) = 0x00000000; mask = […]

从字符串评估数学函数

你能给我一些关于如何在C中创建一个简单的数学表达式解析器的想法吗? 用户在字符串中输入数学函数,并从我想要在C中创建函数的字符串中输入数据函数。 x + sin(2*x) – > return x + sin(2x); 提前致谢。

ceil()和floor()的实现

只是好奇这些是如何实现的。 我看不出我会从哪里开始。 他们直接在float / double位上工作吗? 另外在哪里可以找到math.h的函数源代码? 我找到的只是带有原型的头文件或带有从其他地方调用其他函数的函数的文件。 编辑 :编辑标题后,部分信息丢失了。 我特别指的是ceil()和floor()函数。