比这篇新的文章:
Project Euler-28
比这篇旧的文章: 某黑白棋代码
作者: sofoot, 点击1289次, 评论(4), 收藏者(0), , 打分:
所有评论,共4条:( 我也来说两句)
比这篇旧的文章: 某黑白棋代码
Project Euler-6
语言: Python, 标签: python ProjectEuler 2008/10/13发布 1年前更新作者: sofoot, 点击1289次, 评论(4), 收藏者(0), , 打分:
Python语言: Project Euler-6
1 a=range(101)
2 print sum([x*y for x in a for y in a if x!=y])
2 print sum([x*y for x in a for y in a if x!=y])
所有评论,共4条:( 我也来说两句)
| 1 |
vilinov
1年前
回复
还是没明白最后一行代码,解释器是如何运作的
|
| 2 |
先说题目本身,题目是要求1-100所有整数的“和的平方”与“平方的和”的差,也就是求(1+2+……+100)**2-(1*1+2*2+……+100*100)。根据公式,这个结果等于2*(1*2+1*3+……+99*100),也就是说,等于所有交叉项的2倍。程序中,第二行,print是输出,这个不用说了。sum是求一个list的和,也不用说了。关键是[]中的内容。这个是python的map与filter。如果对数学中集合的写法比较熟悉的话,这个就比较容易明白了。这个list是说这么一个集合{x*y|对于所有的x属于a,y属于a,并且x不等于y}。
|
| 3 |
@sofoot:
|
| 4 |
a-range(101)
|
代码

[0]*x[1],itertools.permutations(a,2)))