7 2 jmu python 組合數 20分

2021-10-06 16:05:14 字數 1899 閱讀 2052

7-2 jmu-python-組合數 (20分)

print('請輸入數值')

exit(0)

if m < 0:

print('不能負數')

exit(0)

else:

n_1 = factorial(n)

m_1 = factorial(m)

n_m = factorial(n-m)

s = n_1 / (m_1*n_m)

print("result=".format(s))

or 

def factorial(n):

s = 1

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

s = s * i

return s

def cal(m,n):

n_1 = factorial(n)

m_1 = factorial(m)

n_m = factorial(n-m)

return n_1 / (m_1 * n_m)

def judge(m,n):

try:

m, n = int(m), int(n)

return true

except:

return false

m,n = input().split()

if judge(m,n):

m, n = int(m), int(n)

if m > 0 and n > 0:

print('result='.format(cal(m, n)))

else:

print('不能負數')

else:

print('請輸入數值')

雖然上面的**可以通過,但這個程式依我來看並不是很好,不糾結與演算法結構,單從程式本身來講。在『請輸入數值』後並不能繼續輸入,所以可能對我來講有點小瑕疵。

def factorial(n):

s = 1

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

s = s * i

return s

def cal(m,n):

n_1 = factorial(n)

m_1 = factorial(m)

n_m = factorial(n-m)

return n_1 / (m_1 * n_m)

def judge(m,n):

try:

m, n = int(m), int(n)

return true

except:

return false

m,n = input().split()

while not judge(m,n):

m, n = input('請輸入數值\n').split()

m, n = int(m), int(n)

if m > 0 and n > 0:

print('result='.format(cal(m, n)))

else:

print('不能負數')

而這個是我稍微改進後的程式,但在pta驗證答案時,第二個顯示『非零返回』,未通過。我能力不夠,不知道錯在**,所以有點困惑。

求值2 組合數公式題目

ans 0 for inti 1 i n i for int v 0 v n v ans ans c i,v c i,v 998244353 c i,v 為組合數第i行第v列的數。給你上面的 中的n,請你輸出ans的值。輸入乙個整數n輸出ans的值。示例1 複製3複製 這題然後就變成了 求組合數的問...

組合數學學習筆記2

為第一類斯特林數,表示將 n 個不同元素劃分為 k 個圓排列的方案數。有遞推式 n 1 為第二類斯特林數,表示將 n 個不同元素劃分為 k 個非空子集的方案數。有遞推式和通項式 k sum fraci n 上公升冪和下降冪的定義 x prod x k x prod x k 斯特林數可以把上公升 下降...

求值2(組合數平方和)

題目描述 ans 0 for inti 1 i n i for int v 0 v n v ans ans c i,v c i,v 998244353 c i,v 為組合數第i行第v列的數。給你上面的 中的n,請你輸出ans的值。輸入描述 輸入乙個整數n 輸出描述 輸出ans的值。示例1輸入複製3 ...