蓝桥杯基础练习VIP——矩阵乘法——快速幂

2023-11-18

题目https://www.dotcpp.com/oj/problem1472.html
1 普通做法 循环嵌套

n,m = list(map(int,input().split()))
mat=[]
for i in range(n):
	row=list(map(int,input().split()))
	mat.append(row)
C=mat.copy()#mat[:]

def cf(A,B):
    x = [[0]*n for i in range(n)]
    for i in range(len(A)):
        for j in range(len(B[0])):
            for k in range(len(B)):
                x[i][j] += A[i][k]*B[k][j]

    return x

for i in range(m-1):
    mat=cf(mat,C)

for i in range(n):
    for j in range(n):
        print(mat[i][j],end=" ")
    print()
#还应该考虑特殊情况 0次幂 特殊用例

2.zip(*A)可以把矩阵横纵坐标交换,即转置
矩阵乘法->以两个二阶矩阵举例,即第一个矩阵的第一行数据分别乘以对应的第二个矩阵的第一列数据,思路就放在如何将不同矩阵的行与列的数值之间在数组中的索引进行统一上

先将要求的矩阵转置,然后只有按位置一一对应相乘就行,后面再将得到的答案转换二维列表输出即可

def f(A,n,m):  
    if m == 0:  
        C = [[1 if i == j else 0 for j in range(n)] for i in range(n)]  
    else:  
        C = A[:]  
        for i in range(m-1):  
            C = [[sum(a*b for a,b in zip(row,col)) for col in zip(*A)] for row in C]  
   
    for i in range(n):  
        for j in range(n):  
            print(C[i][j],end=' ')  
        print()  
       
       
if __name__ == '__main__':  
    n,m = map(int,input().strip().split())  
    A = [[int(j) for j in input().strip().split()] for i in range(n)]  
    f(A,n,m)

3.快速幂 ,真正考点!
https://blog.dotcpp.com/a/77575 题解
快速幂模版

def fastpow(base,n)
    ans=1
    while(n):
        if n&1:
            ans*=base
        base*=base
        n>>=1
    return ans
def fpowx(x, n):
    res = 1
    while n:
        if n & 1:
            res = res * x
        # compute x^2 x^4 x^8
        x *= x
        n >>= 1
    return res

矩阵快速幂

#先定义矩阵的乘法
def multi(A,B):
    x = [[0]*n for i in range(n)]
    for i in range(len(A)):
        for j in range(len(B[0])):
            for k in range(len(B)):
                x[i][j] += A[i][k]*B[k][j]

    return x
#计算快速幂
def quick_multi(matrix,m):

    res=[[1 if i == j else 0 for j in range(n)] for i in range(n)]  
    while m:
        if m&1:
            res=multi(res,matrix)
        matrix=multi(matrix,matrix)
        m=m>>1
    return res
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯基础练习VIP——矩阵乘法——快速幂 的相关文章

  • 如何使用 conda 在一行中安装多个包?

    我需要使用 conda 安装以下多个软件包 我不确定 conda forge 是什么 有些使用 conda forge 有些不使用它 是否可以将它们安装成一行而不需要一一安装 谢谢 conda install c conda forge d
  • ca 证书 Mac OS X

    我需要在emacs 上安装offlineimap 和mu4e 问题是配置 当我运行 Offlineimap 时 我得到 OfflineIMAP 6 5 5 Licensed under the GNU GPL v2 v2 or any la
  • matplotlib 中的 R 风格数据轴缓冲区

    R 绘图自动设置 x 和 y 限制 以在数据和轴之间留出一些空间 我想知道 matplotlib 是否有办法自动执行相同的操作 如果没有 是否有一个好的公式或 经验法则 来说明 R 如何设置其轴限制 在 matplotlib 中 您可以通过
  • Paramiko SSHException 通道已关闭

    我一直在使用 Paramiko 在 Linux Windows 机器上发送命令 它可以很好地在 Ubuntu 机器上远程执行测试 但是 它不适用于 Windows 7 主机 以下是我收到的错误 def unit for event self
  • 在Python中以交互方式执行多行语句

    我是 Python 世界的新手 这是我用 Python 编写的第一个程序 我来自 R 世界 所以这对我来说有点不直观 当我执行时 In 15 import math import random random random math sqrt
  • 如何在Python代码中查找列号

    简短问题 当按上述方式调用函数时 我可以找到行号here https stackoverflow com questions 3056048 filename and line number of python script 同样 如何找到
  • scikit-learn 和tensorflow 有什么区别?可以一起使用它们吗?

    对于这个问题我无法得到满意的答案 据我了解 TensorFlow是一个数值计算库 经常用于深度学习应用 而Scikit learn是一个通用机器学习框架 但它们之间的确切区别是什么 TensorFlow 的目的和功能是什么 我可以一起使用它
  • Tensorflow 不分配完整的 GPU 内存

    Tensorflow 默认分配所有 GPU 内存 但我的新设置实际上只有 9588 MiB 11264 MiB 我预计大约 11 000MiB 就像我的旧设置一样 张量流信息在这里 from tensorflow python client
  • 如何使用 PyMongo 在重复键错误后继续插入

    如果我需要在 MongoDB 中插入尚不存在的文档 db stock update one document set document upsert True 将完成这项工作 如果我错了 请随时纠正我 但是 如果我有一个文档列表并想将它们全
  • 在seaborn中对箱线图x轴进行排序

    我的数据框round data看起来像这样 error username task path 0 0 02 n49vq14uhvy93i5uw33tf7s1ei07vngozrzlsr6q6cnh8w 39 png 1 0 10 n49vq
  • Selenium 不会在新选项卡中打开新 URL(Python 和 Chrome)

    我想使用 Selenium WebDriver 和 Python 在不同的选项卡中打开相当多的 URL 我不确定出了什么问题 driver webdriver Chrome driver get url1 time sleep 5 driv
  • Django Rest Framework POST 更新(如果存在或创建)

    我是 DRF 的新手 我阅读了 API 文档 也许这是显而易见的 但我找不到一个方便的方法来做到这一点 我有一个Answer与 a 具有一对一关系的对象Question 在前端 我曾经使用 POST 方法来创建发送到的答案api answe
  • 在 matplotlib 中绘制多边形的并集[重复]

    这个问题在这里已经有答案了 我正在尝试绘制几个多边形的并集matplotlib 具有一定的 alpha 水平 我当前的代码在交叉点处颜色较深 有没有办法让交叉路口与其他地方的颜色相同 import matplotlib pyplot as
  • Python 导入非常慢 - Anaconda python 2.7

    我的 python import 语句变得非常慢 我使用 Anaconda 包在本地运行 python 2 7 导入模块后 我编写的代码运行得非常快 似乎只是导入需要很长时间 例如 我使用以下代码运行了一个 tester py 文件 imp
  • 如何使用 os.chdir 转到减去最后一步的路径?

    例如 一个方法传递了一个路径作为参数 这个路径可能是 C a b c d 如果我想使用 os chdir 更改为 C a b 怎么办 c 没有最后一个文件夹 os chdir 可以接受 命令吗 os chdir 可以采取 作为论点 是的 然
  • 在 Python 中访问 argparse 的参数值

    我正在尝试为我的程序设置一些简单的标志参数 但无法弄清楚如何访问它们 我有 argparser parser argparse ArgumentParser description Simple PostScript Interpreter
  • 在 HDF5 (PyTables) 中存储 numpy 稀疏矩阵

    我在使用 PyTables 存储 numpy csr matrix 时遇到问题 我收到此错误 TypeError objects of type csr matrix are not supported in this context so
  • 如何更改matplotlib中双头注释的头大小?

    Below figure shows the plot of which arrow head is very small 我尝试了下面的代码 但它不起作用 它说 引发 AttributeError 未知属性 s k 属性错误 未知属性头宽
  • 如何从 nltk 下载器中删除数据/模型?

    我在 python3 NLTK 中安装了一些 NLTK 包 通过nltk download 尝试过它们 但不需要它们 现在想删除它们 我怎样才能删除例如包large grammars来自我的 NLTK 安装 我不想删除完整的 NLTK 安装
  • 在父类中访问子类变量

    我有一个父类和一个继承的子类 我想知道如何访问我的父类中的子类变量 我尝试了这个但失败了 class Parent object def init self print x class Child Parent x 1 x Child Er

随机推荐

  • C++获取电脑主板唯一标识

    获取电脑的唯一标识有很多好处 比如注册 授权等 而且电脑中有很多是唯一标识的硬件 比如网卡 CPU 硬盘 主板等 但是如果电脑中有两个网卡的话 就不知道使用哪个网卡作为唯一的了 可以通过获取主板的ID 作为唯一的标识 通常情况下 可以通过命
  • 无限法则服务器错误登录期间发生错误,无限法则错误126的解决方案分享 Error126错误提示...

    无限法则错误126的解决方案分享 Error126错误提示 许多玩家在玩游戏时遇到了Error126的情况 那么出现这个问题该怎么解决呢 无限法则Error126报错解决方法希望对大家有所帮助 问题描述 出现Error 126错误提示 12
  • win10 win11 远程连接 凭据不工作 无法建立连接

    Windows 远程连接 远程连接个人或者学校电脑 Windows系统 时经常遇到无法连接的情况 本文结合两种情况给出相应解决方法 No 1 问题描述 无法建立连接 未知连接错误 解决方法 查看目标ipv4地址是否正确 在windows W
  • 【JavaWeb学习】CSS(文本和图片)

    字体 color 前景色 用来设置字体的颜色 font size 字体大小 font family 字体族 指定字体的类别 浏览器自动使用该类别下的字体 可以同时指定多个字体 多个字体间用逗号隔开 前一个无法使用就用后一个 字体能否使用由用
  • (邱维声)高等代数课程笔记:极大线性无关组,向量组的秩

    极大线性无关组 向量组的秩 quad 一般地 设 V V V 是数域 K K K 上的一个线性空间
  • 好用的网络请求库Retrofit2(入门及讲解)

    前言 首先 先给出官网 GitHub Retrofit 官网 Retrofit 其次 要吐槽一下官网首页给出的例子 如果你照着例子改 会发现根本没法运行 不是少包就是少关键语句 相关内容可以参看我的另一篇文章 Retrofit 2 0 入门
  • 【论文翻译】边缘应用中加速卷积神经网络的剪枝算法综述

    摘要 随着卷积神经网络 CNN 模型大小的增加 模型压缩和加速技术对于在边缘设备上部署这些模型变得至关重要 在本文中 我们对修剪进行了全面的调查 这是一种主要的压缩策略 可以从CNN模型中删除非关键或冗余的神经元 调查涵盖了修剪的总体动机
  • VC++设置与取得系统音量

    MMRESULT rc 多媒体函数返回结果变量 HMIXER hMixer 混合器设备句柄 MIXERLINE mxl 音频线路标准状态信息结构体 MIXERLINECONTROLS mxlc 音频线路控制器集合信息结构体 MIXERCON
  • 启动arbiter失败Oplog entry at { ts: Timestamp 1651735515000

    mongodb版本是 mongodb linux x86 64 3 4 2 tgz 操作系统 中标麒麟服务器版 问题 查看日志 日志里面提示 2022 05 06T14 27 50 862 0800 I REPL initandlisten
  • SUSAN边缘检测算法,及其Matlab和OpenCV实现

    1 SUSAN边缘检测计算步骤 1 在图像上放置一个37个像素的圆形模板 模板在图像上滑动 依次比较模板内各个像素点的灰度与模板核的灰度 判断是否属于USAN区域 判别函数如下 其中 r 0 vec r 0 r
  • 解决移动端shader找不到问题

    在Unity里面 编辑器特效正常 移动端特效无效 adb输出是找不到shader 打开Graphics面板 把找不到的shader添加进去
  • [python] 下载天地图切片地图

    下载xyz地图 资源 下列为常用xyz路由地址 为了避免图片中出现文字标注 道路名称 建筑物名称等 本文选择天地图tian vec 作为获取资源对象 var mapUrl 高德地图 lang可以通过zh cn设置中文 en设置英文 size
  • RNN详解及BPTT详解

    转自 https blog csdn net zhaojc1995 article details 80572098 本文部分参考和摘录了以下文章 在此由衷感谢以下作者的分享 https zhuanlan zhihu com p 28054
  • Android系统system用户权限和root权限的获取

    在Android系统中 系统为每一个应用程序 apk 创建了一个用户和组 这个用户和组都是受限用户 不能访问系统的数据 只能访问自己的文件和目录 当然它也不能访问其他应用程序的数据 这样设计可以尽可能地保护应用程序的私有数据 增强系统的安全
  • 华为校招机试题-寻找链表的中间结点-2023年

    题目描述 给定一个单链表 L 请编写程序输出 L 中间结点保存的数据 如果有两个中间结点 则输出第二个中间结点保存的数据 例如 给定 L 为 1 7 5 则输出应该为 7 给定 L 为 1 2 3 4 则输出应该为 3 输入描述 每个输入包
  • echart - 圆角环形图 -模板

    一 最近遇到圆角环形图的需求 搞了半天 才找到一个合适的模板 在这里就分享给大家 希望对有需求的小伙伴有所帮助 废话不多说 先贴效果图 然后再贴源码 tip 大家记得要引入一下echart js的文件啊 这样才可以显示出来 路径记得找的要对
  • QT QLabel样式设置

    需要设置error的样式 设置样式 color rgb 255 0 0 font size 12pt font family Microsoft YaHei 字体 颜色也可通过富文本设置在程序中设置 emit LoginError QStr
  • 一文带你了解如何编写自动化测试用例

    自动化测试脚本 什么是自动化测试 自动化测试是验证和验证软件是否满足所有用户需求 并使用自动化工具按预期运行 它检查在产品开发阶段期间和之后出现的错误 问题和其他类型的缺陷 这种类型的软件测试运行在由测试工具处理的编程脚本上 有多种测试工具
  • 关于rider引入使用nuget无法加载包的解决方式

    关于rider引入使用nuget无法加载包的解决方式 这个问题已经是困扰我三天了 因为C 使用rider开发的人相对较少 也可能是我自身遇到这个问题比较特殊 终于找到了nuget无法引入包的解决方案 首先看图 我在Nuget下面查找Nuni
  • 蓝桥杯基础练习VIP——矩阵乘法——快速幂

    题目https www dotcpp com oj problem1472 html 1 普通做法 循环嵌套 n m list map int input split mat for i in range n row list map in