蓝桥 python笔记15——矩阵运算、基础数论、GCD和LCM、质数、唯一分解定理、快速幂

目录

矩阵运算

基础数论

GCD和LCM

质数

唯一分解定理

快速幂


矩阵运算

矩阵加减法:

矩阵和数相乘:

矩阵转置:

矩阵乘法:

python 复制代码
# 矩阵乘法
def mul(A,B):
    N,M=len(A),len(A[0])#行数,列数
    _M,K=len(B),len(B[0])
    if M!=_M:
        return None
    #答案是N*K的
    C=[[0]*K for _ in range(N)]
    for i in range(N):
        for j in range(K):
            for k in range(M):
                C[i][j]+=A[i][k]*B[k][j]
    return C

# 读入矩阵
def read(A,n):
    #n代表行数
    for _ in range(n):
        A.append(list(map(int,input().split())))
# 打印矩阵
def write(A):
    for x in A:
        print(' '.join(map(str,x)))

A=[]
B=[]
N,M,K=map(int,input().split())
read(A,N)
read(B,M)
C=mul(A,B)
write(C)

基础数论

整除的传递性

因为m|(a-b)即k*m=a-b,a=k*m+b,两边同时对m求模

a % m = (k*m+b) % m,即a % m = k + b % m,记为ab(mod m)

GCD和LCM

GCD和LCM的关系:

质数

python 复制代码
def is_prime(n):
    if n<=1:
        return False
    m=int(n**0.5)
    for i in range(2,m+1):
        if x%i==0:
            return False
    return True

#疑似质数
n=int(input())
ans=0
for i in range(1,n+1):
    #逐个枚举[1,n]
    #判断数字i的数位之和是否为质数
    x=i
    cnt=0
    while x!=0:
        cnt+=x%10
        x//=10
    if is_prime(cnt):
        ans+=1
print(ans)

质数筛选:

python 复制代码
def get_prime(n):
    #求n以内所有的质数
    #vis表示是否删除
    vis=[0]*(n+1)
    vis[0]=vis[1]=1
    #质数列表
    prime=[]
    #从小到大,找到第一个未标记的数字,就是质数
    for i in range(2,n+1):
        if vis[i]==0:
            prime.append(i)
            #从2倍的i开始,删除它是质数的可能性
            for j in range(i+i,n+1,i):
                vis[j]=1
    return prime

#打印100以内的素数
print(get_prime(100))

唯一分解定理

快速幂

相关推荐
小巫程序Demo日记1 天前
Spark简介脑图
大数据·笔记·spark
z2014z1 天前
第3章 C#编程概述 笔记
笔记·c#
车队老哥记录生活2 天前
【MPC】模型预测控制笔记 (3):无约束输出反馈MPC
笔记·算法
写代码的小阿帆2 天前
LDStega论文阅读笔记
论文阅读·笔记
Cai junhao2 天前
【Qt】Qt控件
开发语言·c++·笔记·qt
LuLaLuLaLeLLLLLL2 天前
Elastic Search 学习笔记
笔记·学习
Resurgence032 天前
原型模式Prototype Pattern
笔记·原型模式
程序员大宝1012 天前
如何设计三高架构
笔记
成都犀牛2 天前
LangGraph 深度学习笔记:构建真实世界的智能代理
人工智能·pytorch·笔记·python·深度学习
sealaugh322 天前
docker(学习笔记第一课) 使用nginx +https + wordpress
笔记·学习·docker