取大于 2 的根
Taking a root higher than 2
我正在尝试获取表达式的第 11 个根,并且返回了 -inf
个。
std::cout << pow(j,(1.0/11.0)) << std::endl;
其中j
只是一些log
表达。我已经检查了该数字以确保它是有效的,而且确实如此。我认为这是权力表达式的运行方式。有没有更好的方法可以做到这一点?谢谢。
是的,我已经把cmath
纳入了我的工作。
如果你想不出
pow 返回 -inf 的正当理由,如果你的输入稍微理智。但是,如果您传入负数,可能值得尝试的是:
if(j==0) return 0;
if(j<0) return -pow(-j, 1.0/11.0);
return pow(j,1.0/11.0);
-
尝试查找 FPU 错误
- 最常见的是在某些函数中忘记返回浮点/双精度
- 这会导致 FPU 堆栈出现问题,这真的很小。
-
您也可以尝试在 pow 之前添加它
asm { fninit; };
- 这将重置 FPU,因此如果您在堆栈上遇到问题,它会有所帮助
- 但当然不要在某些 FPU 计算过程中这样做
- 它会破坏它的结果
- 如果您不在x87平台上,那么这将无济于事
-
崩盘前J的价值将是一个与我们分享的良好开端。
-
尝试将 Pow 的结果存储到某个浮点/双精度变量中
- cout 该变量不是临时堆内存位置
- 如果它打印 -inf 也查看该变量内部,如果它也是 -INF
- (可能是库特没有pow的问题...
-
最小化代码(逐部分关闭所有内容)
- 看看问题是否突然不存在
- 隐藏的内存泄漏和代码覆盖是邪恶的...
让我们知道您发现了什么。
相关文章:
- 从网站复制证书,并使用脚本将其添加到受信任的根证书颁发机构
- 如何遍历几个每小时一次的根(.root)文件,并将它们组合成更大的每日数据.root文件?
- 如何获取二叉树(集合或映射)的根
- 新运算符分配的大小大于声明的大小.为什么
- 如果用户输入的输入大于 char 数组,则 cin.getline 会跳过输入提醒
- 最大长度子阵列的总和大于 K
- 想要以最新的添加节点完整返回树节点的根
- 为什么程序显示的值大于结果或垃圾值
- 向量下标出的范围错误.即使向量的索引大于访问数据的索引,也会发生误差
- 编译C ,包括带有G 的根库
- 具有最大不同节点的根到叶路径
- 二次方程的根
- 我应该对通用二叉搜索树中的根使用哪种类型的指针
- 显示用户输入的平均数大于 50 和所有可被 3 整除的数字的乘积
- 访问 std::string 中的元素,其中字符串的位置大于其大小
- 检查节点是否是二进制搜索树的根
- 文件上的shcreateStreamonFileex大于2 ** 32字节
- 获取 Mark Sweep 垃圾收集器C++的根
- 找到方程的根
- 取大于 2 的根