问题标签 [cmath]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在绝对值计算器中收到意外的语法错误
代码:
avsol 有语法错误,是的,我导入了 cmath。
c++ - 使用 cmath 时禁用 math.h 废话
我之前遇到了一个问题,因为没有std::
. 而且诅咒仍然不时发生,因为我不使用using namespace std;
.
删除 using namespace std 会导致程序得到垃圾结果
有没有办法禁用所有来自 c 的非标准函数,并且只能在命名空间下使用 c++ 函数std
(而不必使用using namespace std;
)?
换句话说:如果我使用sin()
而不是,我想得到一个错误,而不是std::sin()
这样我就不会犯那个错误。当然,不仅针对 sin,还针对与math.h
.
python - FFT错误值?
随机搭建一个非常简单的声谱分析仪。
鉴于此 python 代码:
http
://rosettacode.org/wiki/Fast_Fourier_transform#Python
实现如下:
我得到这些结果:
这还不错。据说在输入正弦波的频率处我有一个 23 dB 的峰值,一切似乎都很好。
唯一的问题是,第一个值是什么:30.1160980385
?那是一些非常响亮的低音吗?或者更可能是算法中的缺陷。在这种情况下,我该如何解决。
最后一个问题。fft 可以将负值作为输入吗?在上面的例子中,我使用了一个在 [0,1] 范围内始终为正的正弦波。如果我想传递 [-1,1] 范围内的值,我会搞砸一切吗?
编辑:
我删除了编辑,因为它离题了。你可以在这里阅读它的内容:
python - 应用窗函数后 FFT 意外频移
我得到了这个用于 FFT 计算声音信号的 python 代码:
我得到以下结果:
没有窗口函数(注释掉):
WITH窗口功能:
由于某种原因,峰值出现了偏移。这是一个 2 倍频移!为了检查结果,我尝试了这个 Java 小程序:
http
:
//www.random-science-tools.com/maths/FFT.htm 看起来没有任何窗口函数的结果是正确的(峰值为三分之一谱)。相反,如果我在我的 python 脚本中应用窗口函数,峰值显示在频谱的 2/3 处。
这应该发生吗?我如何解决它?
c++ - 为什么编译器让我调用 pow 和 sqrt,即使我没有包含 cmath?
我认为答案应该是否定的,但是我今天编写了一些代码,这些代码完美编译并使用 pow 和 sqrt 显示了正确的答案,即使一开始我忘了添加
#include<cmath>
我在这里错过了什么?
c++ - 取高于 2 的根
我正在尝试取表达式的第 11 个根,我得到了-inf
.
wherej
只是一些log
表达。我已经检查了那个号码以确保它是有效的,而且确实如此。我认为这是权力表达的运行方式。有一个更好的方法吗?谢谢。
是的,我已将其cmath
纳入我的工作。
c++ - 为什么 sqrt() 使用 int 参数?
我正在自学Bjarne Stroustrup(2008 年)的《编程原理和使用 C++ 的实践》一书。当我实施书中的练习时,我遇到了一个小问题。这里使用的 IDE 是 Visual Studio 2012 Ultimate。这里使用的项目类型是 Win32 控制台应用程序。
在本书的第 68 页,作者声称:
“<em>请注意,sqrt() 没有为 int 定义,因此将 n 分配给 double 并取其 sqrt()”</p>
但是,我发现它不符合我的实践代码作为 fowling:
结果:
问题:
为什么它像书中所说的那样工作?或者,我对“<em>sqrt() 没有为 int 定义”有错误的理解,如果是这样,那么解释它的正确方法是什么?
c++ - 为什么我的非递归 sqrt 函数是递归的?
我有以下名为 test.cpp 的 C++ 测试程序:
这是一些相当人为的代码,正如您可能已经猜到的那样,我只是在尝试使用 Stroustrup 进行练习。他声明了 double sqrt(double),并希望读者定义它。
我使用 g++ 4.8(来自 Qt 5.1 的 MINGW 版本)编译了上面的代码:
当我运行生成的可执行文件时,Windows 7 显示“test.exe 已停止工作”。
为了看看出了什么问题,我在 GNU 调试器中运行了 test.exe。调试器命令和输出:
从行为和警告中,我推断 std::sqrt 必须从全局命名空间调用 sqrt ——这导致我的函数被重复调用。
通过更改我的 sqrt 函数的名称或将其放在命名空间中,可以很容易地解决不需要的递归。但我想了解为什么 std::sqrt 以调用 ::sqrt 的方式实现。我认为 std 命名空间的全部意义在于防止名称与用户代码中的非限定名称发生冲突。
我查看了<cmath> 的 GNU 实现的源代码。但是,在链中跟踪了几个#include 之后,我失去了踪迹。也许你可以更清楚地理解它:
顺便说一句,这不仅仅是一个 GNU 难题。使用 Visual C++ 编译器而不是 g++ 编译会产生以下警告:
我想这使得在 StackOverflow 上提出这个问题是一个公平的问题。:)
运行生成的可执行文件会导致预期的结果:“test.exe 已停止工作”。
c++ - 一次加法和乘法的 cmath 函数 x*y+z
库中是否有cmath
给出 3 个数字并返回x
的函数?y
z
x*y+z
c++ - Compilation Error: "pointer can only be subtracted from another pointer"
Just learning C++, and I'm enjoying making my first program it's not much, it just solves math problems I'm having some issues with the distance formula as far as I know my logic is right sqrt((x2-x1)+(y2-y1))
. However I am getting the error
error C2113: '-' : pointer can only be subtracted from another pointer which is throwing me off.
BONUS question... if anybody could point me to a method of directing users back to the first menu when they have finished with a previous selection that would be cool. I'm assuming some sort of loops but I haven't covered that yet in my C++ class.
Here is the code(sorry if it is messy but I haven't learned proper formatting yet)