python蓝桥杯基础练习--矩阵乘法_蓝桥杯能用numpy吗_senzchen的博客-程序员秘密

技术标签: python  矩阵  蓝桥杯  

问题描述

  给定一个N阶矩阵A,输出A的M次幂(M是非负整数)
  例如:
  A =
  1 2
  3 4
  A的2次幂
  7 10
  15 22

输入格式

  第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数
  接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值

输出格式

  输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开

样例输入

2 2
1 2
3 4

样例输出

7 10
15 22

第一想法是采用numpy的dot函数实现,带入测试数据,结果正确但是就是不通过,猜测是不能导入外部包。下面是第一次的代码及结果展示

import numpy as np
N,M=map(int,input().split())
a=[list(map(int,input().split())) for i in range(N)]
if M!=0:
    b = a
    for i in range(M - 1):
        b = np.dot(b, a)

    for i in range(N):
        for j in range(N):
            print(b[i][j], end=" ")
        print()
elif M==0:
    b=[1]*N
    c=np.diag(b)
    for i in range(N):
        for j in range(N):
            print(c[i][j], end=" ")
        print()

 

 

 

 

 

 

 

 

 所以只能用笨办法尝试一下

N,M=map(int,input().split())
p = [list(map(int, input().split())) for i in range(N)]
if M==0:
    b=[0]*(N*N)
    q = []
    for i in range(N):
        for j in range(N):
            if j == 0:
                q.append([])
            q[i].append(b[i * N + j])
    for i in range(N):
        for j in range(N):
            if i==j:
                q[i][j]=1
    for i in range(N):
        for j in range(N):
            print(q[i][j], end=" ")
        print()
else:
    q = p
    for i in range(M - 1):
        h = []
        a = q
        u = p
        for i in range(N):
            c = u[i][:]
            for m in range(N):
                b = []
                for j in range(N):
                    b.append(a[j][m])
                d = 0
                for n in range(N):
                    d += b[n] * c[n]
                h.append(d)
        q = []
        for i in range(N):
            for j in range(N):
                if j == 0:
                    q.append([])
                q[i].append(h[i * N + j])
    for i in range(N):
        for j in range(N):
            print(q[i][j], end=" ")
        print()

 

 成功!!!!!

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_46552988/article/details/123005164

智能推荐

SpringBoot非官方教程 | 第十五篇:Springboot整合RabbitMQ _weixin_33827590的博客-程序员秘密

这篇文章带你了解怎么整合RabbitMQ服务器,并且通过它怎么去发送和接收消息。我将构建一个springboot工程,通过RabbitTemplate去通过MessageListenerAdapter去订阅一个POJO类型的消息。准备工作15minIDEAmaven 3.0在开始构建项目之前,机器需要安装rabbitmq,你可...

我的程序员之路03:我和大数据_叫我阿柒啊的博客-程序员秘密

前言又是一年乍暖还寒,春天的风迎面而来,凉意中夹杂着些许温暖。哦,你知道,是春天来了。就像那年的实习期,在挥手告别的毕业季,定格在了那年的七月。人会怀念,怀念青涩时期的自己,懵懵懂懂却又充满着努力。人会想念,想念每天朝夕相处的人,有一天会在转角挥手告别。人会改变,改变了不善言辞的自己,终游荡于人情世故之中。毕业近三年,从业大数据已近四年,顺着大数据的浪潮,在一个不大不小的城市有了立足之地。每逢佳节,亲朋好友谈及工作,皆以开发手机APP答之,避免出现半天解释不清的情况。后来在很多地方也遇到询问大数据的问

Win10 Hyper-v 中安装 CentOS 搭建开发环境_hyper-v centos 开发环境_yss28的博客-程序员秘密

硬件环境笔记本:Lenovo Y470内存:4GWindows 环境操作系统:Windows 10开发环境:VS2005(需启动.NET Framework 3.5 ,才能正常安装使用) Linux 环境发行版:CentOS 7_x64安装方式:Win10 自带 Hyper-v虚拟机安装优点: 个人电脑主用Windows,linux安装在虚拟机中以命令行方式启动用作后台服务器,内存

MySQL数据库的基本使用之排序查询语法_数据库模糊查询语句按降序排序怎么设置_我想去吃ya的博客-程序员秘密

MySQL数据库的基本使用之排序查询语法,为了方便查看数据可以对数据进行排序。学习排序我们需要掌握升序查询和降序查询的关键字。学习目标:能够知道升序查询和降序查询的关键字排序查询语法排序查询语法:语法说明:(1)先按照列1进行排序,如果列1的值相同时,则按照 列2 排序,以此类推(2)asc从小到大排列,即升序(3)desc从大到小排序,即降序(4)默认按照列值从小到大排列(即asc关键字)例1:查询未删除男生信息,按学号降序:例2:显示所有的学生信息,先按照年龄从大–&gt;

获取配置文件内容@Value和@[email protected]与@configration-程序员秘密

1.配置文件内容test: token: eykhisyfsdfhjkdsfiowefjj uid: 110 user_name: admin password: 1234562.使用@Value注解@Value("${变量}")@Value("${test.user_name}") private String userName;@Value("#{表达式}"),可以使用spel表达式@Value("#{12*2}")private Integer sum

抖音效果字体_怪獸哪裡跑的博客-程序员秘密

&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;抖音风格字体&lt;/title&gt; &lt;style&gt; body { background-color: gray;...

随便推点

微信小程序 弹出层 禁止页面滚动的方法_小程序禁用页面滚动_代码搬运媛的博客-程序员秘密

场景描述添加自定义的弹出框后,当滚动鼠标时下边的页面也会跟着滚动。解决方案为了在遮罩出现的时候禁止用户滑动页面,如下处理:给这个遮罩层 绑定事件: 使用 catchtouchmove(1)在弹出层上添加 catchtouchmove=’true’&lt;!--弹出框 --&gt;&lt;view class="sh_Model_box" catchtouchmove='true'&gt;...&lt;/view&gt;(2)也可以绑定有一个空事件 &lt;view cat

centos7环境下使用python脚本监控mongodb集群复制状态_reblue520的博客-程序员秘密

centos7环境下使用python脚本监控mongodb集群复制状态centos环境下搭建了 MongoDB 副本集,需要对集群的复制状态进行监控获取集群的状态信息,集群是3个节点,没有设置仲裁者[[email protected]:/usr/local]# mongo --port 21000MongoDB shell version v3.4.24c...

OpenCV中C++函数imread读取图片的问题_AndyCheng_hgcc的博客-程序员秘密

http://www.cnblogs.com/eyeszjwang/articles/2418354.html#include &quot;stdafx.h&quot;#include &amp;lt;cv.h&amp;gt;#include &amp;lt;highgui.h&amp;gt;#include &amp;lt;math.h&amp;gt;#include &amp;lt;stdlib.h&amp;gt;#include &amp;lt;stdio.h...

mysql数据库简介_大塔姆的博客-程序员秘密

前言:数据库的种类很多,Oracle、Sql Server、mySQL、Access等他们个自有自己的特点和应用范围,之前用的比较多的是SqlServer,接触过通过navicat接触过mysql的可视化界面,但是没有安装过mysql,也没有在dos下操作过相应的命令。这次通过实践亲自体验了一下。简介:由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低...

Spring Cloud Gateway整合nacos实战(三)_spring-cloud-starter-gateway_Java技术债务的博客-程序员秘密

Spring Cloud GateWay是Spring Cloud的⼀个全新项⽬,⽬标是取代Netflix Zuul,它基于Spring5.0+SpringBoot2.0+WebFlux(基于⾼性能的Reactor模式响应式通信框架Netty,异步⾮阻塞模型)等技术开发,性能⾼于Zuul,官⽅测试,GateWay是Zuul的1.6倍,旨在为微服务架构提供⼀种简单有效的统⼀的API路由管理⽅式。

Linux文件编程1_wyp784035821的博客-程序员秘密

系统调用是指操作系统提供给用户的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的的服务。       程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行在不同的级别上,在逻辑上是相互隔离的。因此,用户进程在通常情况下不允许访问内核数据,也无法使用内核函数,它们只能在用户空间操作用户数据,调用用户空间的函数。系统调用并不是直接与程序员进行交

推荐文章

热门文章

相关标签