矩阵

Problem H: 矩阵对角线求和

一笑奈何 提交于 2019-12-11 05:57:05
Problem H: 矩阵对角线求和 Description 输入一个n×n的整数矩阵,分别计算两个对角线的和。 Input 输入矩阵的阶数n(n≤10),另起一行后输入一个n×n的整数矩阵,每列数据用空格隔开,每行数据用回车分隔。 Output 输出主对角线和副对角线的和。 Sample Input 3 1 2 3 3 2 1 9 7 8 Sample Output 11 14 # include <stdio.h> int main ( ) { int n , m , i , j , k , a [ 30 ] [ 30 ] , b [ 30 ] ; while ( scanf ( "%d" , & n ) != EOF ) { int sum1 = 0 , sum2 = 0 ; for ( i = 0 ; i < n ; i ++ ) { for ( j = 0 ; j < n ; j ++ ) { scanf ( "%d" , & a [ i ] [ j ] ) ; } } for ( i = 0 ; i < n ; i ++ ) { for ( j = i ; j < i + 1 ; j ++ ) { sum1 + = a [ i ] [ j ] ; } } for ( i = 0 ; i < n ; i ++ ) { for ( j = n - 1 - i ; j > n

行指针的使用——*(*(pointer + row) + col)是什么意思

落爺英雄遲暮 提交于 2019-12-11 01:40:29
行指针的使用—— ( (pointer + row) + col)是什么意思 用指针分别指向二维数组中的一个元素和二维数组中的一个子数组的时候,可以形象的称指向单个元素的为列指针,指向子数组的指针为行指针。 # include <stdio.h> int main ( ) { int array [ 3 ] [ 4 ] = { { 1 , 2 , 3 , 4 } , { 5 , 6 , 7 , 8 } , { 9 , 10 , 11 , 12 } } ; int ( * pointer ) [ 4 ] , row , col ; //pionter为一个行指针 pointer = array ; printf ( "Input row = " ) ; scanf_s ( "%d" , & row ) ; printf ( "Input col = " ) ; scanf_s ( "%d" , & col ) ; printf ( "array[% 1d][% 1d] = % d\n" , row , col , * ( * ( pointer + row ) + col ) ) ; } 定义1个3X3的二维数组,求出每行的最大值,保存至1个一维数组。要求使用行指针完成访问每个元素,求最大值的功能。 # include <iostream> using namespace std ;

位置角度平移旋转,“乱七八糟”的坐标变换

风流意气都作罢 提交于 2019-12-11 01:19:15
​本文转载自微信公众号ROBOTICS 原作者:CC 编辑:古月居 原文链接: https://mp.weixin.qq.com/s/eOq5QweS-VIg2e0qmkihMw 今天我们要讲所有学习机器人学的人都需要具备的一项基本技能——坐标变换。看明白这篇文章,你需要一点基础的向量和矩阵知识,不用多,只要知道 向量的加减,点乘(内积);矩阵的定义、加减乘逆以及转置;还有矩阵与向量的乘法 就够了。 机器人学为什么需要坐标变换呢?因为控制一个机械臂的根本,就是弄明白每一个关节的joint position与end effector的position and orientation的关系,用更简洁的话来讲,就是joint space与operational space之间的互相映射关系。这里有两个小说明: 不仅仅是位置/角度的映射关系,也包括 速度、加速度、力或扭矩的映射关系 所有我直接用英文而没有翻译的词汇,都是我在 第一篇文章 中解释过的重要概念 好了,接下来就让我们暂时不谈机器人,先把让很多人觉得头疼的坐标变换搞明白。 坐标系(coordinate system) 描述空间位置、速度和加速度,大部分都是用笛卡尔坐标系,也就是大家熟知的三个互相垂直的坐标轴组成的坐标系。我只想强调几个地方: 像题图那样的彩色坐标系,若无特别说明,都是 rgb(红绿蓝)依次对应 xyz

TargetOffer-二维数组中的查找

喜夏-厌秋 提交于 2019-12-10 23:49:27
题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路解析: 由于数组每一行是有序的,于是可以在每一行中通过二分查找法以此来判断整数是否在数组中。 class Solution: # array 二维列表 def Find(self, target, array): # write code here b = False for i in range(len(array)): if self.binary_search(array[i], target): b = True return b #二分法查找该整数是否存在于数组单维列表中 def binary_search(self, aList, target): first = 0 last = len(aList) - 1 while first <= last: mid = (first + last) / 2 if aList[mid] < target: first = mid + 1 elif aList[mid] > target: last = mid - 1 else: return True return False 来源: CSDN 作者: AlphaU

希尔密码---1

倾然丶 夕夏残阳落幕 提交于 2019-12-10 23:26:06
在之前吧我们讲过了希尔密码的理论,接下来我们讲实战。 abcde…x y z 12345…242526 有的题a是从0开始的。 一、条件 首先,我们打ctf一般会给我们两个条件: 1.密文 2.矩阵(也叫解密矩阵) 二、目的 1、根据矩阵,求出逆矩阵。 2、逆矩阵与密文对应的矩阵相乘。(一定要注意写密文矩阵的顺序) 3、得到矩阵b,每一个数与26相余。 4.得到的余数转ascii 三、实战 例题一、 密文:dloguszijluswogany 矩阵: 1 2 0 1 1、逆矩阵: from numpy import * a1 = mat ( [ [ 1 , 2 ] , [ 0 , 1 ] ] ) print ( a1 ) a2 = a1 . I print ( a2 ) [ [ 1 . - 2 . ] [ 0 . 1 . ] ] 2、密文转化: d l o g u s z i j l u s w o g a n y 4 12 15 7 21 19 26 9 10 12 21 19 23 15 7 1 14 25 3、逆矩阵与密文矩阵相乘 from numpy import * a = mat ( [ [ 1 , - 2 ] , [ 0 , 1 ] ] ) b = mat ( [ [ 4 , 15 , 21 , 26 , 10 , 21 , 23 , 7 , 14 ] , [ 12

数据结构学习(稀疏数组)

淺唱寂寞╮ 提交于 2019-12-10 22:28:05
稀疏数组:当一个数组大部分元素为0,或同为一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法: 1.记录数组一共几行几列,有多少不同的值 2.把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模 第一行: 原始数组几行 原始数组几列 非0值有几个 ... ... ... 从第0开始记录 /** * 稀疏矩阵 * 优化二维数组 */ public class SparseArrayDemo { public static void main(String[] args) { //1.创建一个原始的二维数组 11*11 //0表示没有 1表示黑子 2表示蓝子 (棋) int[][] chessArr1 = new int[11][11]; chessArr1[1][2] = 1; chessArr1[2][3] = 2; //输出一下 for(int[] row: chessArr1){ for(int data: row){ System.out.printf("%d\t",data); } System.out.println(); } //遍历二维数组 得到非0数据个数 int sum = 0; for(int i = 0; i < 11; i++){ for(int j = 0; j < 11; j++){ if(chessArr1[i][j

2019.12.10 二位数组

风流意气都作罢 提交于 2019-12-10 17:53:54
定义格式 * a 第一种定义格式: * int[][] arr = new int[3][4];// arr里面包含3个数组 每个数组里面有四个元素 * 上面的代码相当于定义了一个3*4的二维数组,即二维数组的长度为3,二维数组中的每个元素又是一个长度为4的数组 * b 第二种定义格式 * int[][] arr = new int[3][]; * 第二种方式和第一种类似,只是数组中每个元素的长度不确定 * c 第三种定义格式 * int[][] arr = {{1,2},{3,4,5,6},{7,8,9}}; * 二维数组中定义了三个元素,这三个元素都是数组,分别为{1,2}、{3,4,5,6}、{7,8,9} 来源: https://www.cnblogs.com/l1314/p/12017504.html

论文阅读笔记(八)【IEEEAccess2018】:High-Resolution and Low-Resolution Video Person Re-Identification: A Benchmark

做~自己de王妃 提交于 2019-12-10 16:37:15
Introduction (1)Motivation: 监控视频中的行人,有的比较清晰,有的因为距离较远非常模糊. 在高低分辨率方面的行人重识别缺乏数据集和研究. (2)Contribution: ① 提供了一个关于高低分辨率问题(person re-identification between low-resolution and high-resolution,PRLHV)的新数据集,即 HLVID. ② 提出了集合间半耦合映射距离矩阵学习方法(semi-coupled mapping based set-to-set distance learning approach,SMDL). HLVID DataSet 记录人数:200人,50656张image,平均长度为126帧. 相机:2个,Camera A:1920*1080,Camera B:640*480. 行人帧的规格:高分辨率帧(HR):44*120 到 173*258,平均 105*203;低分辨率帧(LR):8*19 到 19*31,平均 11*21. 高分辨率帧的数量约为低分辨率数量的91倍. Approach (1)SMDL方法: ① 目标函数(假设相机A拍摄的数据为高分辨率,B拍摄的数据为低分辨率): 其中 W 表示距离矩阵,V表示高低分辨率对半耦合映射矩阵. 下文具体介绍目标函数中的两项. ② 半耦合映射项

循环读文件变成二维数组

限于喜欢 提交于 2019-12-10 15:17:38
1 import jsonpath 2 import os 3 import xlrd 4 5 from config.setting import log 6 7 8 def get_value(dic, key): 9 ''' 10 这个函数是从一个字典里面,根据key获取vlaue 11 :param dic:传一个字典 12 :param key:传一个 13 :return:如果有,返回key取到value,如果key没有,返回空字符串 14 ''' 15 result = jsonpath.jsonpath(dic, '$..%s' % key) 16 if result: 17 return result[0] 18 return '' 19 20 21 class GetTestData: 22 23 @staticmethod 24 def data_for_txt(file_name): 25 log.debug('开始读取参数化文件%s' % file_name) 26 if os.path.exists(file_name): 27 with open(file_name, encoding='utf-8') as fr: 28 data = [] 29 for line in fr: 30 if line.strip(): 31 line_data =

20191210——java数组

橙三吉。 提交于 2019-12-10 14:10:06
在某些情况下,虽然可以使用单个变量来存储信息,但是如果需要存储的信息较多(例如存储 50 名学生的成绩),这时再依次创建变量声明并赋值显得非常麻烦。 随着处理的信息量越来越大,工作也就越来越烦琐,这时可以使用数组或集合来存储信息。通过使用数组,可以在很大程度上缩短和简化程序代码,从而提高应用程序的效率。 数组定义 数组(array)是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来确定数组中唯一的元素。根据数组的维度,可以将其分为一维数组、二维数组和多维数组等。 在计算机语言中数组是非常重要的集合类型,大部分计算机语言中数组具有如下三个基本特性: 一致性:数组只能保存相同数据类型元素,元素的数据类型可以是任何相同的数据类型。 有序性:数组中的元素是有序的,通过下标访问。 不可变性:数组一旦初始化,则长度(数组中元素的个数)不可变。 总的来说,数组具有以下特点: 数组可以是一维数组、二维数组或多维数组。 数值数组元素的默认值为 0,而引用元素的默认值为 null。 数组的索引从 0 开始,如果数组有 n 个元素,那么数组的索引是从 0 到(n-1)。 数组元素可以是任何类型,包括数组类型。 数组类型是从抽象基类 Array 派生的引用类型。 一维数组 当数组中每个元素都只带有一个下标时,这种数组就是“一维数组”