当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 34 篇帖子 ]  前往页数 上一页  1, 2, 3
作者 内容
31 楼 
 文章标题 : Re: Project Euler No.10 题,相同的算法用 C++ 和 Python 耗时差异巨大
帖子发表于 : 2012-10-01 11:20 
头像

注册: 2011-06-07 14:20
帖子: 3866
系统: Mint18
送出感谢: 17
接收感谢: 65
嗯,搞计算,用fortran


_________________
wiki: ubuntu 技巧


页首
 用户资料  
 
32 楼 
 文章标题 : Re: Project Euler No.10 题,相同的算法用 C++ 和 Python 耗时差异巨大
帖子发表于 : 2012-10-01 13:10 
头像

注册: 2009-05-08 14:18
帖子: 3332
地址: 河南新乡
系统: Arch
送出感谢: 19
接收感谢: 10
b33e 写道:
嗯,搞计算,用fortran

fortran 算 2^1000 怎么破 :em06 :em06


_________________
Linux 相关链接大杂烩
代码:
if(read) {
    if(practise) return g☘☘d;
    else return w☘☘d;
} else {
    return t☘☘d;
}


页首
 用户资料  
 
33 楼 
 文章标题 : Re: Project Euler No.10 题,相同的算法用 C++ 和 Python 耗时差异巨大
帖子发表于 : 2012-10-14 19:51 

注册: 2012-10-14 19:49
帖子: 1
系统: XP
送出感谢: 0 次
接收感谢: 0 次
def primes(n):
""" returns a list of prime numbers from 2 to < n """
if n < 2: return []
if n == 2: return [2]
# do only odd numbers starting at 3
s = range(3, n, 2)
# n**0.5 may be slightly faster than math.sqrt(n)
mroot = n ** 0.5
half = len(s)
i = 0
m = 3
while m <= mroot:
if s[i]:
j = (m * m - 3)//2
s[j] = 0
while j < half:
s[j] = 0
j += m
i = i + 1
m = 2 * i + 3
# make exception for 2
return [2]+[x for x in s if x]
p=2000000
print sum(primes(p))
====================================================================
2秒


页首
 用户资料  
 
34 楼 
 文章标题 : Re: Project Euler No.10 题,相同的算法用 C++ 和 Python 耗时差异巨大
帖子发表于 : 2012-10-22 20:05 

注册: 2012-10-17 15:05
帖子: 9
系统: ubuntu 12.04
送出感谢: 0 次
接收感谢: 0 次
看具体应用吧,如果是非常成熟的算法(都已经用非常接近Fortran的形式推导好了)就用Fortran,不然,C++和C还是有点优势的。用运行时间换开发时间。
这种没有多大实际应用的例子,就不用追求优化了吧?
能用就可以了。打开C++,写代码,再调试的时间会比那6s-0.5s多得多


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 34 篇帖子 ]  前往页数 上一页  1, 2, 3

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译