Python 程序设计的递归函数教学案例:阶乘函数
def factorial(n):if n==0:
return 1
else:
return n*factorial(n-1)
另外一种写法
条件表达式(有时称为“三元运算符”)在所有 Python 运算中具有最低的优先级。
表达式 x if condition else y 首先是对条件condition 而非 x 求值。如果 Condition 为真,x 将被求值并返回其值;否则将对 y 求值并返回其值。
def factorial(n):
return 1 if n==0 else n*factorial(n-1)
def factorial(n):
fact=1
if n==0:
return 1
else:
for i in range(1, n+1):
fact*=i
return fact
阶乘函数又是排列和组合的基础
排列
def permutation(n, k):
return int(factorial(n)/(factorial(k)*factorial(n-k)))
组合函数又可以建立在排列函数的基础
def combination(n, k):
return int(permutation(n, k)/factorial(k))
二项式系数
def binomialcoefficient(n):
return " ".join(str(permutation(n, k)) for k in range(n+1))
math 模块
import math
math.factorial(5)
math.perm(5,2)
math.comb(5,2)
scipy
from scipy.special import factorial, perm, comb, binom
factorial(5)
perm(5, 2)
comb(5, 2)
binom(5, 2)
NumPy
import numpy as np
from numpy.random import permutation, choice
print(permutation(10))
print(permutation(range(10)))
print(permutation(np.arange(9).reshape(3,3)))
print(choice(5,2))
itertools
from itertools import product, permutations, combinations, combinations_with_replacement
print(list(product(range(5))))
print(list(combinations_with_replacement(range(5), 2)))
print(list(permutations(range(5), 2)))
print(list(combinations(range(5), 2)))
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/11173/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取