推荐一个网站(题库?)。
当前,该论坛中首先显示的主题过多。要让该主题首先显示,请取消其他主题的这一选项。
处理您的请求时出错。请重试。
标记
  4 个帖子 - 全部隐藏
您要发布帖子的论坛是一个 Usenet 新闻组。在此论坛发帖会使您的电子邮件地址有机会给互联网上的所有人看到。
您的回复帖子尚未发送。
发帖成功
Bayes  
查看个人资料
 更多选项 10月3日, 上午3时01分
发件人:Bayes <Bayes...@gmail.com>
日期:Thu, 2 Oct 2008 12:01:01 -0700 (PDT)
当地时间:2008年10月3日(星期五) 上午3时01分
主题:推荐一个网站(题库?)。
其实也是从别人的blog链来链去链到得。
感觉也还是很有意思的,新手可以用来做练习,高手可以用来休闲一下。

http://projecteuler.net/

网站直译叫“欧拉工程”,其实是一套题库,主要是把数学和计算机结合起来,用编程来解决问题。
一条基本原则就是,你编程解决每个问题,算法当然允许多想想,但是程序运行应该不超过1分钟。如果超过了,证明在算法方面还可以改进。

你注册之后可以看到统计,python用户排在第二,仅次于c/c++用户。其中中国用户超过400。
这个题库大约每周出一题,现在已经到了210,第211题这个周末会出来。
在总共将近一万用户中,全部解决210题的不超过100人,而且因为越往后,题目就越难,因此全部做完的人应该更少。高手们可以用这个来休闲下。况且国
内还没有人用python解决所有题。有的都是c/c++解决的。美国的python发展貌似很好,有1个人用python解决了所有题。

另外网站还设置了保密,你只能看到解决了某个题目的人数,如果你自己没有输入正确答案,你是看不到别人的分析和代码的。
新手完全可以用这个当作练习,前面的有些题目还是很简单的,我现在正在练习中,有些题目做出来,再比对网上别人的答案,才发现自己在用python写c
程序。。。
也希望高手们做些简单点的题目,给我们show一下code,多读code多做题,我想这应该是初学者比较快的提高方式了。


    回复    答复作者    转发       为此帖评分: Text for clearing space
您需要先登录才能发帖。
要发帖子,您需要先加入此论坛
请先在订阅设置页上更新您的昵称,然后再进行发帖。
您没有发帖的权限。
est  
查看个人资料
 更多选项 10月3日, 上午4时05分
发件人:est <electronix...@gmail.com>
日期:Thu, 2 Oct 2008 13:05:51 -0700 (PDT)
当地时间:2008年10月3日(星期五) 上午4时05分
主题:Re: 推荐一个网站(题库?)。
类似ACM的Online Judge?

推荐一个自由软件定理证明工具Isabelle http://isabelle.in.tum.de/

On Oct 3, 3:01 am, Bayes <Bayes...@gmail.com> wrote:


    回复    答复作者    转发       为此帖评分: Text for clearing space
您需要先登录才能发帖。
要发帖子,您需要先加入此论坛
请先在订阅设置页上更新您的昵称,然后再进行发帖。
您没有发帖的权限。
张沈鹏  
查看个人资料
 更多选项 10月3日, 上午5时06分
发件人:"张沈鹏" <zsp...@gmail.com>
日期:Fri, 3 Oct 2008 05:06:20 +0800
当地时间:2008年10月3日(星期五) 上午5时06分
主题:Re: [CPyUG:67082] Re: 推荐一个网站(题库?)。
做了5条,困了,睡觉

1.
print sum(i for i in range(1000) if not (i%3 and i%5))

2.
def fibonacci(max):
    x=1
    y=2
    yield 1
    yield 2
    while y<max:
        x,y=y,x+y
        yield y

print sum(i for i in fibonacci(4000000) if (1+i)%2 )

3.
下载这个脚本
http://infohost.nmt.edu/tcc/help/lang/python/prime.html

print max(Prime().factorize(600851475143))

4.
def is_reverse(x):
    result=[]
    while x:
        result.append(x%10)
        x=x/10
    for i in range(len(result)/2):
        if result[-i-1]!=result[i]:
            return False
    return True

digit3=range(100,1000)
max=0
for i in digit3:
    for j in digit3:
        r=i*j
        if is_reverse(r):
            if is_reverse(r)!=True:print r
            if r>max:
                max=r
print max

5.

prime_list = lambda x:[
    i for i in range(2, x+1)
    if all([i%x for x in range(2, int(i**0.5+1))])
]
"""
2**4<20
3*2<20
"""
print reduce(lambda x,y:x*y,prime_list(20))*(2**3)*3


    回复    答复作者    转发       为此帖评分: Text for clearing space
您需要先登录才能发帖。
要发帖子,您需要先加入此论坛
请先在订阅设置页上更新您的昵称,然后再进行发帖。
您没有发帖的权限。
Leo Jay  
查看个人资料
 更多选项 10月3日, 上午5时14分
发件人:"Leo Jay" <python.leo...@gmail.com>
日期:Fri, 3 Oct 2008 05:14:00 +0800
主题:Re: [CPyUG:67083] Re: 推荐一个网站(题库?)。

我的4是这样的:
maxvalue = 0
for i in xrange(100, 1000):
        for j in xrange(i, 1000):
                intresult = i * j
                strresult = str(intresult)
                if strresult == strresult[::-1]:
                        if intresult > maxvalue:
                                maxvalue = intresult

print maxvalue

> 5.

> prime_list = lambda x:[
>    i for i in range(2, x+1)
>    if all([i%x for x in range(2, int(i**0.5+1))])
> ]
> """
> 2**4<20
> 3*2<20
> """
> print reduce(lambda x,y:x*y,prime_list(20))*(2**3)*3

我的5是这样的:
def lcm(a, b):
        return lcm(b, a%b) if b else a

print reduce(lambda x, y: x*y/lcm(x,y), xrange(2, 21))

--
Best Regards,
Leo Jay