社区
C语言
帖子详情
关于标准数学函数pow的问题
hupo1982
2007-06-08 03:36:48
今天才发现用标准数学函数pow求幂的时候有一个限制,就是底数为负数的时候指数必须为整数,那如果我想计算(-3125)^0.2 = 5该怎么算呢?是有什么扩展的数学函数库还是怎么算?
还发现Wnidows自带的计算器也不能算这个,网上很多下载的计算器也不能算,google和baidu的计算器倒是能算,搜狗的也算不了,真是昏倒!
...全文
435
15
打赏
收藏
关于标准数学函数pow的问题
今天才发现用标准数学函数pow求幂的时候有一个限制,就是底数为负数的时候指数必须为整数,那如果我想计算(-3125)^0.2 = 5该怎么算呢?是有什么扩展的数学函数库还是怎么算? 还发现Wnidows自带的计算器也不能算这个,网上很多下载的计算器也不能算,google和baidu的计算器倒是能算,搜狗的也算不了,真是昏倒!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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, 在结果上面在加一个负号就完了
C/C++
标准
库源代码
C/C++
标准
库源代码,从Microsoft Visual Studio 10.0即Visual Studio 2010中提取出来的,希望对大家的学习和工作有所帮助。
C语言库
函数
使用大全(PDF)
提供:
函数
名,用法,功能介绍,及程序例
C语言实战105例
这是一个C语言的实例程序,一共有105个例子.部分程序必须用WIN-TC编译.很适合新人学习
C语言库
函数
速查[CHM文档]
C语言库
函数
速查[CHM文档]是一个很好的C语言
函数
查询器.属于CHM文档.
C语言中常用的
标准
数学
函数
在C语言编程中,经常用到一些
数学
函数
,我将基本的
数学
函数
整理了一下,方便大家查阅,
函数
如下:注意:使用
标准
数学
函数
时,要加入
标准
数学
函数
库,即:#include <math.h>
函数
名功能
函数
名功能sqrt(x)计算x的平方根,x应该大于0exp(x)计算e的x次方的值fabs(x)计算x的绝对值
pow
(x,y)计算x的y次方的值log(x)计算lnx的值,x应该大于0sin(x)计算...
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章