免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345
最近访问板块 发新帖
楼主: 星条旗

[学习共享] 来写几段天书式的dc程序 [复制链接]

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19CU十二周年纪念徽章
日期:2013-10-24 15:41:34
发表于 2013-01-19 20:42 |显示全部楼层
本帖最后由 shencz2000 于 2013-10-18 21:49 编辑

你好,你提到的四个例子我看都是递归。第一个例子 a 子程序被调用了9 次,那也就是说要分配 9 个子程序内存空间。如果被调用 n 次,那就是说,要分配 n 个子程序内存空间,那就是要使用很多内存空间。
但是如果使用 for ,when ,while等循环,是不是就不会有这个问题?
我运行了一下没有修改过的求质数的 d c 程序,不到 1 分钟的时间,就出现“段错误”。
但是我运行如下修改过的dc求质数脚本,5分钟时间后都没有出现“段错误”。看来“段错误”跟运行时间没有太多关系。
echo '2p3p7000000001p[dlAd2+sA%0=ClAlG!<B]sB[sE0dsG]sC[p]sF[ddvsG3sAlBx0<F2+lDx]dsDx' | dc
但是我还有一个问题:dc 本身是不是不需要为子程序分配内存空间?因为在 dc 里的一个寄存器里已经保存了子程序代码,另外 dc 本身带有主栈,可以直接使用。我这样说对吗吗?

论坛徽章:
0
发表于 2013-01-19 20:51 |显示全部楼层
本帖最后由 hbmhalley 于 2013-01-19 20:55 编辑

回复 41# shencz2000


    对,但 dc 没有显式的循环结构

    ps: 那段本来就是死循环,停了就是爆栈了

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19CU十二周年纪念徽章
日期:2013-10-24 15:41:34
发表于 2013-01-20 00:22 |显示全部楼层
本帖最后由 shencz2000 于 2013-01-21 13:29 编辑

      这是一个用来求解一元二次方程的dc脚本

#只是练习一下而已。如果没有实数解,会有错误提示
#
# solve the mathmatic ax^2+bx+c=0, x=?
# please key in like this:    dc -e '1 4 1' axxbxc0.dc
# 2013-1-18

3k                  #set scale
#?                  # plese input a b c
sC sB sA        # save a,b,c to register A,B,C

# x=((+-)sqrt(b^2-4ac) - b)/2a

lB2^4lA*lC*-dv   # calculate sqrt(b^2 -4ac)
[dsDlB-2lA*/psE # calculate (sqrt(b^2 -4ac) -b)/2a
0lD-lB-2lA*/p]  # calculate ( - sqrt(b^2 -4ac) -b)/2a
sFd0!>F

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19CU十二周年纪念徽章
日期:2013-10-24 15:41:34
发表于 2013-01-21 01:40 |显示全部楼层
本帖最后由 shencz2000 于 2013-01-22 21:17 编辑

编写bc脚本可以用来做数学计算,它的语法跟C语言很像。因此我花了一点时间,在网上搜到一个C语言求解质数的程序。然后将它改成bc脚本,并把它保存成文件:prime.bc。这个脚本使用了for循环。通过命令: bc prime.bc 运行它就能够求解质数。然后,我修改了求质数的开始点,从一个很大的数开始求解,在几分钟的时间内,求出几十个质数。我使用的起始点是3*10^12+1 。
这是该脚本的URL:http://bbs.chinaunix.net/thread-4064923-1-2.html
看来bc是一个好用的数学计算程序[引用自某本书]。
因此,可以这样说,要么 dc 有局限性,要么就是还没有学会正确使用 dc 。否则的话,就能够使用dc顺利求解大质数了。这样说对吗?

论坛徽章:
0
发表于 2013-04-26 13:40 |显示全部楼层
不懂噢。。。。。。。。。。。。。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP