用Python求函数序列 组合数的值等

img


用Python求函数序列 组合数的值等
编写判断m是否为素数的函数
编写一个求阶乘的函数

1:实现斐波那契数列的函数:


def fib(n):
    if n <= 0:
        return []
    elif n == 1:
        return [1]
    elif n == 2:
        return [1, 1]
    else:
        result = [1, 1]
        for i in range(2, n):
            result.append(result[i-1] + result[i-2])
        return result

2实现判断素数的函数

def fun(m):
    if m <= 1:
        return False
    elif m == 2:
        return True
    else:
        for i in range(2, int(m**0.5)+1):
            if m % i == 0:
                return False
        return True

3:实现求阶乘的函数

def f(n):
    if n == 0:
        return 1
    else:
        return n * f(n-1)

def comb(n, k):
    if k > n:
        return 0
    else:
        return f(n) // (f(k) * f(n-k))

n = 5
for k in range(n+1):
    print("C({0}, {1}) = {2}".format(n, k, comb(n, k)))
计算数列前n项的fibonacci数列
def fib(n):
    if n <= 0:
        return []
    elif n == 1:
        return [0]
    elif n == 2:
        return [0, 1]
    else:
        fib_list = [0, 1]
        for i in range(2, n):
            fib_list.append(fib_list[i-1] + fib_list[i-2])
        return fib_list
判断一个数是否是素数的函数fun(m)
def fun(m):
    if m <= 1:
        return False
    elif m == 2:
        return True
    else:
        for i in range(2, int(m ** 0.5) + 1):
            if m % i == 0:
                return False
        return True
求阶乘的函数f(n),并且计算组合数c(m,n)
def f(n):
    if n < 0:
        return None
    elif n == 0:
        return 1
    else:
        return n * f(n-1)

def c(m, n):
    if not isinstance(m, int) or not isinstance(n, int) or m < n or n < 0:
        return None
    else:
        return f(m) // (f(n) * f(m-n))

计算sin的近似值的函数Mysin(x)
def Mysin(x):
    x = x % (2 * math.pi)   # 将角度转换为0 ~ 2pi之间的弧度
    sin_value = 0
    for i in range(20):
        sin_value += ((-1) ** i / f(2 * i + 1)) * (x ** (2 * i + 1))
    return sin_value