目录
矩阵运算
矩阵加减法:
矩阵和数相乘:
矩阵转置:
矩阵乘法:
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的关系:
质数
pythondef 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)
质数筛选:
pythondef 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))