编程学习网 > 编程语言 > Python > Python教程:阶乘、排列和组合
2023
07-12

Python教程:阶乘、排列和组合

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)))

以上就是Python教程:阶乘、排列和组合的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取