python筆記1(楊輝三角 質數問題)

2022-09-12 08:54:11 字數 2996 閱讀 7585

print(round(2.5)) #

round()是四捨六入,五取偶;不是math下面的函式

print(round(1.2))

import

math

print(math.floor(2.5)) #

向下取整

print(math.ceil(2.5)) #

向上取整

print(math.sqrt(3)) #

開平方print(math.pi) #

paiprint(math.e) #

自然常數

lst=

n=6for i in

range(n):

row=[1]

if i==0:

continue

for j in range(i-1):

else

:print(lst)

結果:

[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1], [1, 5, 10, 10, 5, 1]]
#

改進n=6p=

for i in range(n): #

每乙個行遍歷

row=[1] #

每行開頭都給乙個1

for k in range(i): #

每一行尾部給1

改進:可以直接給每一行的元素全部賦值為1

,後面再對中間的數進行重新賦值

if i==0: #

對於第一行特殊對待,不進行下面的賦值運算

continue

for j in range(1,i//2+1): #

對每一行的一半元素進行處理直到中間的元素

val=p[i-1][j-1]+p[i-1][j]#

每次以上一行的元素進行相加

row[j]=val #

每乙個元素加入到row中

if j!=i-j: #

這是對奇數個數的中間點跳過

row[-j-1]=val #

利用列表的倒序來對稱賦值

print(p) #

如p[-1]為列表p的倒數第乙個

結果:[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1], [1, 5, 10, 10, 5, 1]]

列印楊輝三角第n行第m個數:

#

改進a=6lst=

k=5for i in

range(a):

row=[1]*(i+1)

if i==0:

continue

for j in range(1,i//2+1):

val=lst[i-1][j-1]+lst[i-1][j]

row[j]=val

if j!=i-j:

row[-j-1]=val

print(lst[a-1][k-1]) #

列印第a行,第k列

### 改進:根據楊輝三角定理:第n行的m個數可以表示為c(n-1,m-1),即為從n-1個不同元素中取m-1個元素的組合數c(n,r)=n!/(r!(n-r)!)

n=10k=5n,r=n-1,k-1d=n-r

lst= #

用來裝n,r,d

temp=1

for i in range(1,n+1):

temp*=i

if i==r: #

利用乙個迴圈把階乘過程中所要擷取的階乘用if語句截斷下來

最先加進去的是最小的,所以與if的先後無關

if i==d:

#即[0][1],[2]分別是d,r以及n

if i==n:

#三個條件不要寫在一起了,因為邏輯不允許,如果有兩兩相等就會出錯

print(lst[2]//(lst[1]*lst[0]))

#改進

import

math

n=100000p=

count=0

flag=true

start=datetime.datetime.now()

for x in range(2,n):

for i in

p: count+=1

if x%i==0:

flag=false

break

if i>=math.ceil(x**0.5):

flag=true

break

ifflag:

delta=(datetime.datetime.now()-start).total_seconds()

print

(len(p))

print

(count)

print(delta)

結果:

9592

754026

0.447888

import

math

import

datetime

n=100000p=

count=0

start=datetime.datetime.now()

for x in range(2,n):

for i in

p: count+=1

if(x%i)==0:

break

else

:delta=(datetime.datetime.now()-start).total_seconds()

print

(len(p))

print

(count)

print(delta)

結果:

9592

46314476

9.33169

python楊輝三角 楊輝三角I II

給定乙個非負整數 numrows,生成楊輝三角的前 numrows 行。在楊輝三角中,每個數是它左上方和右上方的數的和。示例 輸入 5 輸出 1 1,1 1,2,1 1,3,3,1 1,4,6,4,1 可以一行一行錯位加,當然這裡提供更簡便的方法。任取一行描述 1,2,1 如何得到 1,3,3,1 ...

Python 楊輝三角

首先附上我們需要求得的楊輝三角 1 1,1 1,2,1 1,3,3,1 1,4,6,4,1 1,5,10,10,5,1 1,6,15,20,15,6,1 1,7,21,35,35,21,7,1 1,8,28,56,70,56,28,8,1 1,9,36,84,126,126,84,36,9,1 很顯...

楊輝三角 Python

給定乙個非負整數 numrows,生成楊輝三角的前 numrows 行。在楊輝三角中,每個數是它左上方和右上方的數的和。示例 輸入 5 輸出 1 1,1 1,2,1 1,3,3,1 1,4,6,4,1 coding utf 8 usr bin env python author wowlnan gi...