Python数据结构与算法 – 引入概念
-
第一次尝试
题目:如果a+b+c=1000,且a2+b2=c2 (a,b,c为自然数),如何求出a、b、c可能的组合?
枚举法:a=0,b=0,c=0开始,将c从0到1000枚举,将b变为1,c从0到1000枚举…
import time start_time = time.time() for a in range(0,1001): for b in range(0,1001): for c in range(0,1001): if a + b + c ==1000 and a**2 + b**2 == c**2: print("a, b, c: %d, %d, %d" % (a, b, c)) end_time = time.time() print("times: %d" % (end_time-start_time)) print("finished")
-
算法的提出
算法的概念:算法是独立存在的一种解决问题的方法和思想。
算法的五大特性:
①输入:算法具有0个或多个输入
②输出:算法至少有1个或多个输出
③有穷性:算法在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在可接受的时间内完成
④确定性:算法中的每一步都有确定的含义,不会出现二义性
⑤可行性:算法的每一步都是可行的,也就是说每一步都可以执行有限的次数完成 -
第二次尝试
a+b+c=1000,则c=1000-a-b,枚举法代码可以改进:
<