| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2341 人关注过本帖
标题:程序到底是怎么进行计算的?
取消只看楼主 加入收藏
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1925
专家分:2992
注 册:2009-12-22
结帖率:89.13%
收藏
 问题点数:0 回复次数:6 
程序到底是怎么进行计算的?
下面问题,我问的有点傻。

1.23的3.21次方程序是怎么计算出来的,我想知道手工计算方法.
有没有同学愿意写一下过程?如下图
图片附件: 游客没有浏览图片的权限,请 登录注册






1除以3,再乘以3,程序为什么不会计算出0.9999999999999...
程序如何赋值计算的,知道的同学说下。如下图
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2021-2-17 17:46编辑过]

搜索更多相关主题的帖子: 同学 赋值 计算 过程 计算方法 
2021-02-17 17:43
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1925
专家分:2992
注 册:2009-12-22
收藏
得分:0 
回复 2楼 风吹过b
精辟

第2个问题,可能真的是四舍五入的结果。但我没证据。

第一个问题的手工计算方法,我请教过很多大学生,无人能解。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2021-02-17 20:45
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1925
专家分:2992
注 册:2009-12-22
收藏
得分:0 
以下是引用ysr2857在2021-2-18 00:18:43的发言:

程序可以这么计算:小数化分数,分子是乘方,分母是开方,而手工计算是不能这么算的,用幂级数公式计算,选用收敛速度快的,几步除法和假发就可以得到精确的结果(大多是无理数,只有到无穷多位才能相等所以精确到点后某位就行,就是某项的小数在点后多少位是0再往后才是数字,就不用再算了),比如这个可以转换为对数,再还原位指数:先计算3.21*ln1.23(当然,手工计算需要用级数展开式,各项的和,某一项非常小了之后就不必再算了),设结果为x,再算e^x就还原回去了(也是级数展开)。仅是举例,可能有其他收敛速度快的公式和方法,还有牛顿迭代,就是求出函数方程在某点的导数比如在点3.21处的导数,就是初值,再经过迭代可以快速得到精确的结果。
我的说法不一定对,仅供参考。我也没有学过,某些如无穷级数是高等数学,咱不懂瞎说的,可以网上查阅。仅提供个思路,自己参考试验一下。网上可能有现成的程序,可以运行试试,帮组您弄懂道理。
晚安,祝愉快!(可以用计算器比较一下两种方法的结果是否相同,比如前面的方法和计算器直接计算的1.23^3.21是否一样?)



结果不对,小数化分数,分子是乘方,分母是开方
应该不是计算精度的问题,差好多。
程序代码:
Private Sub Form_Load()
Debug.Print 0.3 ^ 0.3
Dim a As Double, b As Double, c As Double, d As Double, e As Double
Dim f As Double, g As Double, h As Double, i As Double, j As Double
Dim k As Double

a = 0.3 ^ 3
b = Sqr(a)
c = Sqr(b)
d = Sqr(c)
e = Sqr(d)
f = Sqr(e)
g = Sqr(f)
h = Sqr(g)
i = Sqr(h)
j = Sqr(i)
k = Sqr(j)

Debug.Print k
End Sub

图片附件: 游客没有浏览图片的权限,请 登录注册

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2021-02-23 15:28
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1925
专家分:2992
注 册:2009-12-22
收藏
得分:0 
回复 9楼 ysr2857
这下结果正确了。验证了你的理论是正确的。
图片附件: 游客没有浏览图片的权限,请 登录注册

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2021-02-23 21:03
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1925
专家分:2992
注 册:2009-12-22
收藏
得分:0 
回复 9楼 ysr2857
这或许是电脑的算法。

手工计算1.23^3.21次,到底是用高等数学的泰勒公式,还是用什么计算?

拿笔在纸上能计算出来的那种,具体怎么算,我是小学生,版主可以讲讲么?

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2021-02-23 21:08
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1925
专家分:2992
注 册:2009-12-22
收藏
得分:0 
先把1.23乘3次方也就是3个1.23相乘,再乘以1.23的5次方根,手工开5次方根??

怎么理解?

1.23^3*[1.23^(1/5)]  ???

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2021-02-23 21:29
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1925
专家分:2992
注 册:2009-12-22
收藏
得分:0 
回复 14楼 ysr2857
感激,这个我慢慢研究学习。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2021-02-23 21:53
快速回复:程序到底是怎么进行计算的?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025174 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved