社区
C语言
帖子详情
关于标准数学函数pow的问题
hupo1982
2007-06-08 03:36:48
今天才发现用标准数学函数pow求幂的时候有一个限制,就是底数为负数的时候指数必须为整数,那如果我想计算(-3125)^0.2 = 5该怎么算呢?是有什么扩展的数学函数库还是怎么算?
还发现Wnidows自带的计算器也不能算这个,网上很多下载的计算器也不能算,google和baidu的计算器倒是能算,搜狗的也算不了,真是昏倒!
...全文
472
15
打赏
收藏
关于标准数学函数pow的问题
今天才发现用标准数学函数pow求幂的时候有一个限制,就是底数为负数的时候指数必须为整数,那如果我想计算(-3125)^0.2 = 5该怎么算呢?是有什么扩展的数学函数库还是怎么算? 还发现Wnidows自带的计算器也不能算这个,网上很多下载的计算器也不能算,google和baidu的计算器倒是能算,搜狗的也算不了,真是昏倒!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zlj1202
2007-06-15
打赏
举报
回复
严谨 是靠自己解决的
mLee79
2007-06-08
打赏
举报
回复
偶觉得这东东还是用复数计算比较方便
-3125^.2 == (3125*e^((2*n+1)PI*i))^.2 = 5*e^((2*n+1)*.2*PI*i)
一共获得5个解, 其中只有一个实数 -5 , 其它的4个是复数 ...
jixingzhong
2007-06-08
打赏
举报
回复
int n=pow(3125, 0.2);
然后根据符号: n = -n; 就得到结果 5 了 ....
jixingzhong
2007-06-08
打赏
举报
回复
恩,看岔了 ...
可以这样,
自己先判断一下 结果是否在实数域内,
如果是,判断一下结果的符号,
然后对数据的 绝对值 进行 0.2 次方即可。
晨星
2007-06-08
打赏
举报
回复
jixingzhong(瞌睡虫·星辰) ( ) 信誉:100 Blog 加为好友 2007-06-08 17:45:45 得分: 0
(-3125)^0.2
这个在数学上就是不对的吧??
=========================
如果你把0.2看作“五分之一”,倒不能说不对。
主要问题就在于计算机里的浮点数不可能去精确地对应数学上的分数。
jixingzhong
2007-06-08
打赏
举报
回复
(-3125)^0.2
这个在数学上就是不对的吧??
wj_fantasy
2007-06-08
打赏
举报
回复
开方运算本来就不能用负数的,那样的话结果就是虚数了。
huashizhixin
2007-06-08
打赏
举报
回复
换更高版本的编译器,用更高位数的cpu,这不是计算机的问题,呵呵
lightnut
2007-06-08
打赏
举报
回复
用C++的complex版本吧, 不过算出来的是复数主值, 楼主想要的实数.
正如steedhorse(晨星) 所言, 这是个数学问题
晨星
2007-06-08
打赏
举报
回复
再说,计算机里的浮点数也不见得总是能非常精确的代表一个分数。
比如,对于分数,1/7来说,x ^ (1 / 7)在负数域上本来是有定义的。但如果你写:
float f = 1 / 7.0;
CPU当然无法判断出这个f本来是从一个分母是奇数的整数算式上算出来的。
mLee79
2007-06-08
打赏
举报
回复
这东西在实数域下本来就没办法算嘛, 过程要用复数计算的三,结果是这样也很正常三
晨星
2007-06-08
打赏
举报
回复
当指数不为整数时,并非所有幂函数的定义域都是整个实数域。
比如:函数x ^ (1/2)的定义域就不包括负数。
这是个数学问题,不是计算机问题。
hupo1982
2007-06-08
打赏
举报
回复
有没有严谨一点的方法,毕竟这种运算确实有很多是非法的,比如(-25)^0.5在实数范围内就是非法的
todototry
2007-06-08
打赏
举报
回复
up之
www_adintr_com
2007-06-08
打赏
举报
回复
先算 (3125)^0.2, 在结果上面在加一个负号就完了
联盛德W801系列8-编译链接时找不到
标准
数学
库
函数
的解决方法
本文介绍了解决GCC编译器中
数学
函数
缺失
问题
的方法,通过正确配置链接参数-lm,解决了链接时找不到
标准
数学
库中的
pow
和floor
函数
的
问题
。同时,还介绍了如何处理C++静态局部变量初始化引发的undefined reference错误。
【C++】探索C++库
函数
的奇妙世界:深入了解如何发挥其强大功能
本文介绍了C++中cmath和string.h头文件的区别,包括
函数
内容、命名空间、C++
标准
兼容性以及异常处理。通过实例展示了如何使用sqrt、
pow
等
数学
函数
,同时提供了strcat溢出
问题
的解决方案。
pow
() sqrt()
本文深入解析C++
标准
库中math.h头文件提供的
pow
()和sqrt()
数学
函数
,涵盖其声明形式、参数类型约束(如sqrt仅支持非负数)、返回值特性及常见使用陷阱。重点讨论浮点精度误差、整型转double隐式转换
问题
,并给出安全调用示例。
<cmath>库
本文详细介绍了C++
标准
库中的
头文件,包括sqrt(),
pow
(), abs()等
数学
函数
的用法,以及布尔类型bool的应用。通过实例演示了如何在实际编程中运用这些内容来解决计算
问题
。
C语言使用
数学
库编译不通过
问题
本文探讨了在使用GCC编译器时遇到的
数学
函数
pow
未找到引用的
问题
,并解释了解决方案,即在编译命令中加入-lm选项。文章进一步讲解了C
标准
库的重要性及其组成部分,介绍了glibc作为Linux平台上的C
函数
库所扮演的角色。
C语言
70,038
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章