Skip to content

Commit 7305641

Browse files
committed
2 parents e956865 + 10b1e06 commit 7305641

1 file changed

Lines changed: 35 additions & 11 deletions

File tree

205.md

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@
1515

1616
最简单的思路就是用公式法求解,这是普适法则(普世法则?普适是否等同于普世?)。
1717

18-
>古巴比伦留下的陶片显示,在大约公元前2000年(2000 BC)古巴比伦的数学家就能解一元二次方程了。在大約公元前480年,中國人已经使用配方法求得了二次方程的正根,但是并没有提出通用的求解方法。公元前300年左右,欧几里得提出了一种更抽象的几何方法求解二次方程。
18+
古巴比伦留下的陶片显示,在大约公元前2000年(2000BC)古巴比伦的数学家就能解一元二次方程了。在大约公元前480年,中国人已经使用配方法求得了二次方程的正根,但是并没有提出通用的求解方法。公元前300年左右,欧几里得提出了一种更抽象的几何方法求解二次方程。
1919

20-
>7世紀印度的婆羅摩笈多(Brahmagupta)是第一位懂得用使用代數方程,它同時容許有正負數的根
20+
7世纪印度的婆罗摩笈多(Brahmagupta)是第一位懂得用使用代数方程,它同时容许有正负数的根
2121

22-
>11世紀阿拉伯的花拉子密 独立地发展了一套公式以求方程的正数解。亚伯拉罕·巴希亚(亦以拉丁文名字萨瓦索达著称)在他的著作Liber embadorum中,首次将完整的一元二次方程解法传入欧洲。(源自《维基百科》)
22+
11世纪阿拉伯的花拉子密 独立地发展了一套公式以求方程的正数解。亚伯拉罕·巴希亚(亦以拉丁文名字萨瓦索达著称)在他的著作Liber embadorum中,首次将完整的一元二次方程解法传入欧洲。(源自《维基百科》)
2323

2424
参考代码:
2525

@@ -30,7 +30,7 @@
3030
solving a quadratic equation
3131
"""
3232

33-
from __future__ import division
33+
from __future__ import division #Python2中为了确保除法得到的结果是精确的,导入python未来支持的语言特征division(精确除法)
3434
import math
3535

3636
def quadratic_equation(a,b,c):
@@ -72,7 +72,7 @@
7272

7373
至少要完成上述改进,可能需要其它的有关python知识,甚至于前面没有介绍。这都不要紧,掌握了基本知识之后,在编程的过程中,就要不断发挥google的优势,让她帮助你找寻完成任务的工具。
7474

75-
>python是一个开发的语言,很多大牛人都写了一些工具,让别人使用,减轻了后人的劳动负担。这就是所谓的第三方模块。虽然python中已经有一些“自带电池”,即默认安装的,比如上面程序中用到的math,但是我们还嫌不够。于是又很多第三方的模块来专门解决某个问题。比如这个解方程问题,就可以使用SymPy(www.sympy.org)来解决,当然NumPy也是非常强悍的工具
75+
>python是一个开发的语言,很多大牛人都写了一些工具,让别人使用,减轻了后人的劳动负担。这就是所谓的第三方模块。虽然python中已经有一些“自带电池”,即默认安装的,比如上面程序中用到的math,但是我们还嫌不够。于是又很多第三方的模块来专门解决某个问题。比如这个解方程问题,就可以使用SymPy(www.sympy.org) 来解决,当然NumPy 也是非常强悍的工具
7676
7777
##统计考试成绩
7878

@@ -103,7 +103,7 @@
103103
"""
104104
score_values = scores.values()
105105
sum_scores = sum(score_values)
106-
average = sum_scores/len(score_values)
106+
average = round(sum_scores/len(score_values), 2) # round(a,2) 保留两位小数
107107
return average
108108

109109
def sorted_score(scores):
@@ -148,7 +148,7 @@
148148
保存为20502.py,然后运行:
149149

150150
$ python 20502.py
151-
the average score is: 80.2222222222
151+
the average score is: 80.22
152152
list of the scores: [('facebook', 99), ('apple', 99), ('amazon', 99), ('google', 98), ('alibaba', 80), ('android', 76), ('IBM', 70), ('baidu', 52), ('yahoo', 49)]
153153
Xueba is: [('facebook', 99), ('apple', 99), ('amazon', 99)]
154154
Xuzha is: [('yahoo', 49)]
@@ -161,9 +161,9 @@
161161

162162
还是按照前面的管理,读者先做,然后我提供参考代码,然后自行优化。
163163

164-
>質數(Prime number),又称素数,指在大於1的自然数中,除了1和此整数自身外,無法被其他自然数整除的数(也可定義為只有1和本身两个因数的数)。
164+
>质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数)
165165
166-
>哥德巴赫猜想是數論中存在最久的未解問題之一。这个猜想最早出现在1742年普鲁士人克里斯蒂安·哥德巴赫与瑞士数学家莱昂哈德·欧拉的通信中。用现代的数学语言,哥德巴赫猜想可以陳述為:“任一大於2的偶數,都可表示成兩個質數之和。”。哥德巴赫猜想在提出后的很长一段时间内毫无进展,直到二十世纪二十年代,数学家从组合数学与解析数论两方面分别提出了解决的思路,并在其后的半个世纪里取得了一系列突破。目前最好的结果是陈景润在1973年发表的陈氏定理(也被称为“1+2”)。(源自《维基百科》)
166+
>哥德巴赫猜想是数论中存在最久的未解问题之一。这个猜想最早出现在1742年普鲁士人克里斯蒂安·哥德巴赫与瑞士数学家莱昂哈德·欧拉的通信中。用现代的数学语言,哥德巴赫猜想可以陈述为:“任一大于2的偶数,都可表示成两个素数之和。”。哥德巴赫猜想在提出后的很长一段时间内毫无进展,直到二十世纪二十年代,数学家从组合数学与解析数论两方面分别提出了解决的思路,并在其后的半个世纪里取得了一系列突破。目前最好的结果是陈景润在1973年发表的陈氏定理(也被称为“1+2”)。(源自《维基百科》)
167167
168168
对这个练习,我的思路是先做一个函数,用它来判断某个整数是否是素数。然后循环即可。参考代码:
169169

@@ -188,7 +188,7 @@
188188
return True
189189

190190
if __name__ == "__main__":
191-
primes = [i for i in range(2,100) if is_prime(i)] #从2开始,因为1显然不是质数
191+
primes = [i for i in range(2,101) if is_prime(i)] #从2开始,因为1显然不是质数
192192
print primes
193193

194194
代码保存后运行:
@@ -200,6 +200,30 @@
200200

201201
还是前面的观点,这个程序你或许也发现了需要进一步优化的地方,那就太好了。另外,关于判断质数的方法,还有好多种,读者可以自己创造或者网上搜索一些,拓展思路。
202202

203+
#网友frankwang分享一段关于素数的代码,供各位参考:
204+
205+
def find_primes(n):
206+
primesList = []
207+
for x in range(2, n+1):
208+
isPrime = True
209+
for y in range(2, int(x**0.5) + 1): #x**0.5 相当于math.sqrt(x)
210+
if x % y == 0:
211+
isPrime = False
212+
break
213+
if isPrime:
214+
primesList.append(x)
215+
216+
print(primesList)
217+
if __name__ == "__main__":
218+
max = int(input('Find primes up to: '))
219+
find_primes(max)
220+
221+
代码保存后运行:
222+
# 打印结果如下:
223+
Find primes up to: 100
224+
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
225+
226+
203227
##编写函数的注意事项
204228

205229
编写函数,在开发实践中是非常必要和常见的,一般情况,你写的函数应该是:
@@ -214,4 +238,4 @@
214238

215239
[总目录](./index.md)   |   [上节:函数(4)](./204.md)   |   [下节:zip()补充](./236.md)
216240

217-
如果你认为有必要打赏我,请通过支付宝:**[email protected]**,不胜感激。
241+
如果你认为有必要打赏我,请通过支付宝:**[email protected]**,不胜感激。

0 commit comments

Comments
 (0)