矩阵

算法:二维数组中的查找

帅比萌擦擦* 提交于 2020-01-21 21:55:17
题目 :在一个二维数组中 每一行都按照从左到右递增的顺序排序 每一列都按照从上到下递增的顺序排序 请完成一个函数,输入这样的一个二维数组 和一个整数,判断数组中是否含有该整数*** 思路 首先选取数组中右上角的数字 如果该数等于要查找的数字 则查找结果结束 * 如果该数组大于查找的数字,则剔除这个数组所在的列 * 如果该数字小于要查找的数字 则踢除这个数字所在的行 * 也就是说 如果要查找的数字不在数组的右上角 则每一次都在数组的查找范围中剔除一行或者一类 * 这样每一步都可以缩小查找的范围 知道找到要查找的数字 或者查找范围为空 代码: public class Test { /* * 解法: * 首先选取数组中右上角的数字 如果该数等于要查找的数字 则查找结果结束 * 如果该数组大于查找的数字,则剔除这个数组所在的列 * 如果该数字小于要查找的数字 则踢除这个数字所在的行 * 也就是说 如果要查找的数字不在数组的右上角 则每一次都在数组的查找范围中剔除一行或者一类 * 这样每一步都可以缩小查找的范围 知道找到要查找的数字 或者查找范围为空 */ public boolean checkSort(int[][] a,int rows,int columns,int number){ if(a != null && a.length>=0){ int row = 0; int

PHP二维数组多字段去重

£可爱£侵袭症+ 提交于 2020-01-21 18:46:34
二位数组多字段去重 不指定一个字段去重,判断所有字段是否有重复 $arr = [ 0 => [ 'name' => 'name1', 'age' => '10' ], 1 => [ 'name' => 'name1', 'age' => '11' ], 2 => [ 'name' => 'name2', 'age' => '10' ], 3 => [ 'name' => 'name2', 'age' => '10' ] ];    方法: $res = []; foreach ($arr as $key => $value) { //重新排序value ksort($value); //获取key ,判断是否存在的依据 $key = implode("_", $value); //name1_10 //md5 为了防止字段内容过长特殊字符等 $res[md5($key)] = $value; } //重置索引 $res = array_values($res); var_dump($res); 来源: https://www.cnblogs.com/inkwhite/p/12222690.html

1097 画矩阵

荒凉一梦 提交于 2020-01-21 15:49:33
题目如上 解题步骤如下 首先常规套路基础操作打上。 然后开始画矩阵 这里我用了bool进行判断 就是这样。我是在外面手写的代码。可能会有不恰当的地方。 来源: https://www.cnblogs.com/--840-114/p/12221874.html

NumPy矩阵

一曲冷凌霜 提交于 2020-01-21 13:28:20
函数 描述 numpy.matlib.empty(shape, dtype, order) 函数返回一个新的矩阵,参数解释:shape: 定义新矩阵形状的整数或整数元组 Dtype: 可选,数据类型 order: C(行序优先) 或者 F(列序优先) numpy.matlib.zeros() 创建一个以 0 填充的矩阵。 numpy.matlib.ones() 创建一个以 1 填充的矩阵。 numpy.matlib.eye() 返回一个矩阵,对角线元素为 1,其他位置为零。参数解释:n: 返回矩阵的行数 M: 返回矩阵的列数,默认为 n k: 对角线的索引 dtype: 数据类型 numpy.matlib.identity() 返回给定大小的单位矩阵。 numpy.matlib.rand() 创建一个给定大小的矩阵,数据是随机填充的。 来源: https://www.cnblogs.com/supershuai/p/12221381.html

线性代数精华——从正交向量到正交矩阵

情到浓时终转凉″ 提交于 2020-01-21 09:33:01
向量内积 这个基本上是中学当中数学课本上的概念,两个向量的 内积 非常简单,我们直接看公式回顾一下: \[X \cdot Y = \sum_{i=1}^n x_i*y_i\] 这里X和Y都是n维的向量,两个向量能够计算内积的前提是两个向量的维度一样。从上面公式可以看出来,两个向量的内积就等于两个向量对应各个维度的分量的乘积的和。 为了和矩阵乘法以及普通的乘法做区分,我们通常把两个向量的内积写成: \([x, y]=x^Ty\) 。 这里有一个很重要的性质,对于一个向量而言,我们可以用欧几里得公式计算它的长度。进一步,我们可以用向量的长度以及向量之间的夹角来表示向量的内积,如下: \[[x, y]=|x|\cdot |y|\cos\theta\] 其中的 \(\theta\) 是x和y向量之间的夹角,对于三维及以下空间内的向量,这一点非常直观。对于高维度的向量,我们很难想象它的物理意义。不过没有关系,我们一样可以认为向量之间存在一个 广义超空间 内的一个夹角。在机器学习领域,我们通常用这个夹角来反应 向量之间的相似度 。两个向量越相似,那么它们之间的夹角应该越小,对应的cos余弦值应该越大。所以我们可以用两个向量之间的余弦值来反应它们之间的相似度。余弦值的计算就源于此。 正交向量 从上面的公式可以看出来,向量的内积等于两个向量长度乘上向量之间的夹角。对于非零向量而言

HDU - 4990 矩阵快速幂

两盒软妹~` 提交于 2020-01-21 08:51:03
给你下面程序: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include<iostream> #include <cstring> #include <cmath> #include <algorithm> #include<vector> const int MAX=100000*2; const int INF=1e9; int main() { int n,m,ans,i; while(scanf("%d%d",&n,&m)!=EOF) { ans=0; for(i=1;i<=n;i++) { if(i&1)ans=(ans*2+1)%m; else ans=ans*2%m; } printf("%d\n",ans); } return 0; } 【数据范围】 1 ≤ n , m ≤ 1000000000 1 ≤ n , m ≤ 1000000000 【分析】 通过打表得知 f i = f i − 2 + 2 i − 1 f i = f i − 2 + 2 i − 1 ,因为n太大肯定不能暴力做,开始想着通过这个公式等比数列求和就可以做,但是后面发现因为要 M o d m M o d m ,而m的值不是定值,求逆元就不一定有。所以构造矩阵来做: ⎡ ⎣ ⎢ f n f

Java基础学习笔记四 Java基础语法

为君一笑 提交于 2020-01-21 05:41:20
数组 数组的需求 现在需要统计某公司员工的工资情况,例如计算平均工资、最高工资等。假设该公司有50名员工,用前面所学的知识完成,那么程序首先需要声明50个变量来分别记住每位员工的工资,这样做会显得很麻烦. 数组的概述 数组是指一组数据的集合,数组中的每个数据被称作元素。在数组中可以存放任意类型的元素,但同一个数组里存放的元素类型必须一致。 数组的定义 格式: 数据类型[] 数组名 = new 数据类型[元素个数或数组长度]; 举例:int[] x = new int[100]; 要点说明 数据类型: 数组中存储元素的数据类型 [] 表示数组的意思 变量名 自定义标识符 new 创建容器关键字 元素个数,就是数组中,可以存储多少个数据 (恒定, 定长) 数组是一个容器: 存储到数组中的每个元素,都有自己的自动编号(索引(index), 下标, 角标) 访问数组存储的元素,必须依赖于索引, 数组名[索引] 数组中最小的索引是 0 ,最大的索引是“数组的长度 -1 ”。 在程序中可以通过 “数组名 .length ”的方式来获得数组的长度,即元素的个数。 接下来,通过一个案例来演示如何定义数组以及访问数组中的元素,如下所示。ArrayDemo01.java public class ArrayDemo01 { public static void main(String[] args)

奇异

冷暖自知 提交于 2020-01-21 05:40:10
一、奇异函数 定义:函数本身或其导数、积分 有不连续点(跳跃点)的一类函数。 奇异点:表现出奇异性的点。 二、奇异矩阵与非奇异矩阵 对象:方阵。 (一)奇异矩阵 定义:行列式等于0的矩阵。 判定:若 ∣ A ∣ = 0 |A|=0 ∣ A ∣ = 0 ,则 A A A 为奇异矩阵。 (二)非奇异矩阵 定义:n 行 n 列的非零矩阵 A A A ,若存在矩阵 B B B 使 A B = B A = I AB = BA =I A B = B A = I ( I I I 是单位矩阵),则称 A A A 是 可逆的/非奇异矩阵 。 判定: a. 一个矩阵非奇异当且仅当它的行列式不为零。 b. 一个矩阵非奇异当且仅当它代表的线性变换是个自同构。 c. 一个矩阵非奇异当且仅当它的秩为n。 (R(A)<n则行列式为0) d. 可逆矩阵就是非奇异矩阵,非奇异矩阵也是可逆矩阵。 参考 奇异函数 奇异矩阵与非奇异矩阵 来源: CSDN 作者: 梁小娘子 链接: https://blog.csdn.net/weixin_40680322/article/details/103752852

Java第一阶段总结

蹲街弑〆低调 提交于 2020-01-21 04:32:22
JDK,JRE,JVM的区别 JDK:Java Development Kit(Java开发工具包) Java开发工具包,亦是Java开发者必须安装的软件环境。JDK包含了JRE与开发Java程序所需所需的工具,如编译器、调试器、反编译器、文档生成器等。 JRE:Java Runtime Environment(Java运行环境) Java程序运行的必要环境,包含类库和JVM。 JVM:Java Virtual Machine(Java虚拟机) JVM是Java的虚拟机,引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。 Java的基本组成 Java的基本组成包含数据类型、变量、标识符、运算符、字符串、数组、流程控制、注释 数据类型 Java的数组类型分为原始类型和引用类型。 原始类型: 1.整数类型:byte、short、int和long。 2.浮点类型:float和double。 3.字符类型:char。 4.布尔类型:boolean。 引用类型: 包括类,接口和数组。 比起c语言,Java的原始类型多了byte和布尔类型的boolean,byte是最小的整数类型,所占位数为8位

Python 矩阵相邻

半腔热情 提交于 2020-01-21 03:17:00
题目描述: 一个矩阵,5*5,取相邻(二个成员有一个边是相同的)的6个,输入一个6个成员列表,判断是否满足? 矩阵成员如下: [[1,2,3,4,5], [11,12,13,14,15], [21,22,23,24,25], [31,32,33,34,35], [41,42,43,44,45]]. 输入描述: 包含6个矩阵成员数组,如:1,2,3,4,5,11以一个空格分隔,支持多行 1,2,3,4,5,11 1,2,11,14,25,15 输出描述: 满足输出1,否则输出0,每一行输入一个输出 1 0 def label ( df , num ) : result = [ ] found = False for i in range ( len ( df ) ) : for j in range ( len ( df [ i ] ) ) : if num == df [ i ] [ j ] and not found : found = True result . append ( i ) result . append ( j ) if not found : return False else : return result def nearby ( i1 , j1 , i2 , j2 ) : if abs ( i2 - i1 ) + abs ( j2 - j1 ) <= 1