# 枚舉法 --- 就是一個數一個數的試
# 算法的5大特性:
# 輸入:算法具有0個或多個輸入
# 輸出:算法至少有一個或多個輸出
# 有窮性:算法在有限的步驟后會自動結束而不會無限循環,並且每一步可以在接受的時間內完成。
# 確定性:算法中的每一步都有確定的含義,不會出現二義性
# 可行性:算法的每一步都是可行的,也就是說每一步都能夠執行有限的次數完成。
#
# 時間復雜度
# 每台機器執行的總時間不同,但是執行的基本運算數量大體相同
# T(n)=N^3*k +c
# g(n)=n^3
# T(n)=g(n) g(n)就叫做T(n)的漸進函數
# 把提出來的g(n)叫做時間復雜度的大'o'表示法
# 什么是時間復雜度:T(n)就是時間復雜度
枚舉的思想
import time
start_time = time.time()
for a in range(0,1000):
for b in range(0,1000):
for c in range(0,1000):
if a+b+c==1000 and a**2 + b**2 == c**2:
print('a,b,c:%d %d %d'%(a,b,c))
endtime = time.time()
print('times:%d'%(endtime-start_time))
print('finished')
# import time
# start_time = time.time()
# for a in range(0,1001):
# for b in range(0,1001):
# c = 1000 -a - b
# if a**2 + b**2 == c**2:
# print('a,b,c:%d %d %d'%(a,b,c))
# endtime = time.time()
# print('times:%d'%(endtime-start_time))
# print('finished')