V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  cbsw  ›  全部回复第 33 页 / 共 33 页
回复总数  647
1 ... 24  25  26  27  28  29  30  31  32  33  
2013-11-28 21:01:18 +08:00
回复了 cbsw 创建的主题 Python Pypy速度超快啊
好吧,V2EX居然直接把 gist 上的代码抓过来了,还高亮显示了
2013-11-28 20:58:44 +08:00
回复了 cbsw 创建的主题 Python Pypy速度超快啊
@thwawar 像V2EX这样的网站,我觉得应该加上代码高亮功能的。贴到 https://gist.github.com/dengshuan/7691247 上,大家可以在自己机子上测试一下,我在Fedora 19 x86_64平台测试的
2013-11-28 16:20:51 +08:00
回复了 inee 创建的主题 问与答 你们2GB以上的.TXT用什么利器打开?
LZ是要编辑还是查看,编辑sed,查看less
2013-11-28 15:58:51 +08:00
回复了 cbsw 创建的主题 Python Pypy速度超快啊
Simpson和梯形公式计算积分
/* C version */
float f(float x){
return sqrt(x)*log(x);
}
while (N < 100000){ /* Simpson integration*/
h = (b-a)/N;
Sn = h*f(b)/6;
for (int i = 0; i < N; i++){
if (i == N-1)
Sn += h/6 * (4*f(a+(i+1.0/2)*h));
else
Sn += h/6 * (4*f(a+(i+1.0/2)*h) + 2*f(a+(i+1.0)*h));
}
errS = fabs(Sn-rval);
N += 100;
/* fprintf (fp,"%d\t%.9f\n",N,errS); */
}
N=1000;
while (N<100000){ /* Trapezoidal integration */
h = (b-a)/N;
Tn = 0.0;
for (int i = 0; i < N; ++i) {
if (i!=0)
Tn += h/2 * (f(a+i*h) + f(a+(i+1)*h));
}
errT = fabs(Tn-rval)
N += 100;
/* fprintf(fp,"%d\t%.9f\n",N,errT); */
}
这个程序是用来确定舍入误差开始超过积分方法误差时的积分步长,当然这个程序实际中没有多大意义
# python version
for N in n:
h = (b-a)/N
# Sn
Sn = h*f(b)/6
for k in range(0,N,1):
if k==N-1:
Sn += h/6 * (4*f(a+(k+1.0/2)*h))
else:
Sn += h/6 * (4*f(a+(k+1.0/2)*h) + 2*f(a+(k+1)*h))
# Tn
Tn = 0.0
for k in range(0,N,1):
if k!=0:
Tn += h/2 * (f(a+k*h) + f(a+(k+1)*h))
errS.append(abs(Sn-real))
errT.append(abs(Tn-real))
当然这个程序可以优化,但相同的算法,用不同语言、解释器实现,这样比较应该还算比较公平
首页网址最后有一个句点
2013-11-28 15:21:46 +08:00
回复了 cbsw 创建的主题 Python Pypy速度超快啊
@initialdp Linux平台,Fedora19
路过支持一下,这跟V2EX一个风格啊。另外域名后面为什么有个句点
1 ... 24  25  26  27  28  29  30  31  32  33  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2634 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 20ms · UTC 07:05 · PVG 15:05 · LAX 23:05 · JFK 02:05
Developed with CodeLauncher
♥ Do have faith in what you're doing.