矩阵

接下来的目标

☆樱花仙子☆ 提交于 2020-02-13 14:14:31
  把遗传算法运用到游戏架构里的想法失败了,但这种探索仍然具有意义。   接下来的事情,需要继续完善以前所做的调度器模型,尽量把它拆分成并行的模块。   在Sprite里引入完善的状态机机制。   需要学习的一个新的内容是矩阵,有“单元离散化后,最初的偏微分方程将变成某种形式的矩阵方程,它们把节点上的已知量(输入)和未知量(输出)联系起来,这样就可以逐个单元求解”希望能在这里对并行编程取得突破。另外游戏中涉及到地图的部分也需要这部分知识。 来源: https://www.cnblogs.com/GameCode/archive/2010/07/13/1776727.html

二维数组的应用(杨辉三角)

会有一股神秘感。 提交于 2020-02-13 09:21:01
import java.util.Scanner; /** * @author Jocany *代码:杨辉三角 */ public class ArrayTest3 { // 分析: // A:任何一行的第一列和最后一列都是1 // B:从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。 public static void main(String[] args) { //键盘输入行数 System.out.println("请输入一个数字:"); Scanner sc=new Scanner(System.in); int n = sc.nextInt(); //定义一个二维数组 int [][]arr=new int[n][n]; //确定任何一行的第一列和最后一列都是1,用二维数组遍历 for (int i = 0; i < arr.length; i++) { arr[i][0]=1; arr[i][i]=1; } //行 for (int i = 2; i < arr.length; i++) { //列 for (int j = 1; j <=i-1; j++) { //第三行开始每一个数据都是它前一行的前一列与前一行的本列之和; arr[i][j]=arr[i-1][j-1]+arr[i-1][j]; } } //遍历数组 for (int i = 0;

iOS开发-OpenGLES 入门踩坑

╄→гoц情女王★ 提交于 2020-02-13 09:12:56
OpenGL的变换 OpenGL ES 中有两套矩阵,都是4×4的GLfloat矩阵。一个叫 modelview matrix ,你大部分时间都会与之打交道。它是你用来对虚拟世界进行变换的矩阵。要对虚拟世界中的物体进行旋转,转移或尺寸变化,你都需要对此矩阵进行修改。 另一个矩阵用来创建根据设定的视口对世界坐标进行描述的二维表示。此矩阵称为 projection matrix 。在绝大部分时间内,你都不需要接触该矩阵。 从三维空间到二维平面,就如同用相机拍照一样,通常都要经历以下几个步骤 (括号内表示的是相应的图形学概念):   第一步,将相机置于三角架上,让它对准三维景物( 视点变换 ,Viewing Transformation)。   第二步,将三维物体放在适当的位置( 模型变换 ,Modeling Transformation)。   第三步,选择相机镜头并调焦,使三维物体投影在二维胶片上( 投影变换 ,Projection Transformation)。   第四步,决定二维像片的大小( 视口变换 ,Viewport Transformation)。   这样,一个三维空间里的物体就可以用相应的二维平面物体表示了,也就能在二维的电脑屏幕上正确显示了。 变换后的x坐标范围是[-1, 1],y坐标范围是[-1, 1],z坐标范围是[0, 1](OpenGL略有不同,z值范围是

矩阵运算相关函数

人盡茶涼 提交于 2020-02-13 06:22:02
+ - * / ^ 对应元素相加、相减、相乘、相除、求幂 A %*% B 矩阵相乘 A %o% B 矩阵的外积。 AB' cbind(A, B, ...) 横向组合矩阵或向量 col(A) 求A的Choleski因子。如果 R <- chol(A) ,则 chol(A) 包含上三角因子,并有 R'R=A colMeans(A) 返回一个向量,包含A每列的均值 crossprod(A) A'A (A的转置与A相乘) tcrossprod(A,B) AB'(A乘以B的转置) colSums(A) 返回一个向量,包含A每列的和 diag(A) 返回一个向量,包含主对角线元素 diag(x) 以x为主对角线元素创建对角矩阵 diag(k) 如果k是标量,则创建一个k × k的单位矩阵 eigen(A) A的特征值和特征向量。如果 y <- eigen(A) ,则 y$val 是A的特征值, y$vec 是A的特征向量 ginv(A) A的Moore-Penrose广义逆。(需要MASS包) qr(A) A的QR分解。如果 y <- qr(A) ,则 y$qr 有一个包含分解值的上三角矩阵和一个包含分解值信息的下三角矩阵, y$rank 是A的秩, y$qraux 是包含Q其他信息的向量, y$pivot 包含旋转策略的信息。 rbind(A, B, ...) 纵向组合矩阵或向量

Stanford机器学习笔记-10. 降维(Dimensionality Reduction)

北慕城南 提交于 2020-02-13 06:08:17
10. Dimensionality Reduction Content 10. Dimensionality Reduction   10.1 Motivation     10.1.1 Motivation one: Data Compression     10.2.2 Motivation two: Visualization   10.2 Principal Component Analysis     10.2.1 Problem formulation     10.2.2 Principal Component Analysis Algorithm     10.2.3 Choosing the Number of Principal Components     10.2.4 Advice for Applying PCA 10.1 Motivation 10.1.1 Motivation one: Data Compression 如果我们有许多冗余的数据,我们可能需要对特征量进行 降维(Dimensionality Reduction)。 我们可以找到两个非常相关的特征量,可视化,然后用一条新的直线来准确的描述这两个特征量。例如图10-1所示,x1和x2是两个单位不同本质相同的特征量,我们可以对其降维。 图10-1 一个2维到1维的例子 又如图10

2019 牛客暑期多校 第八场 A All-one Matrices (单调栈+前缀和)

狂风中的少年 提交于 2020-02-13 04:29:06
题目: https://ac.nowcoder.com/acm/contest/888/A 题意: 找全1矩阵的个数,并且这个全1矩阵不被其他全1矩阵包含 思路:这里引用付队说的话 -> {   这类问题,一般解决就是两个方向: A:压缩一维,即枚举上下边界,然后复杂度O(N^3); B:广告牌问题,即枚举下边界s,那么久可以看成s为底的一些高楼,再高楼上布置广告牌,复杂度O(N^2)。 } 这里光看复杂度我们就能看出肯定是B类问题,我们之前已经知道怎么求出每个矩阵了,但是我们怎么确定他是最大不可延伸的矩阵了呢,其实我们无非就是看当前矩阵是否还可以向上下左右延申,左右的话我们之前看过dp和栈的做法能找出L[i],R[i],我们本来就是从上往下来枚举的,上面延申已经不用考虑,我们预处理出来了,我们以当前层为底时怎么确定下面是否可以再延申呢。我们只要看下下面这行是否全部都是1即可,那么如何确定呢,前缀和判断是否等于区间长度,这样就可以了,如果等于说明可以再延申,如果不可以,矩形数+1 #include<bits/stdc++.h> #define maxn 3005 #define mod 1000000007 using namespace std; typedef int ll; ll n,m; char str[maxn][maxn]; ll dp[maxn][maxn];

机器学习 矩阵的基本运算

自作多情 提交于 2020-02-13 03:54:39
矩阵的基本概念 假设 a i j ∈ R , 其中 i = 1 , 2 , . . . , m ; j = 1 , 2 , . . . , n . 我们定义如下的行列式: A = ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ a 11 a 21 ⋮ a m 1 a 12 a 22 ⋮ a m 2 ⋯ ⋯ ⋯ a 1 n a 2 n ⋮ a m n ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ 是一个维数为 m × n 的实数矩阵。有时候我们会用如下的表达式来表示一个矩阵: A = [ a i j ] , i = 1 , 2 , . . . , m ; j = 1 , 2 , . . . , n 这表示一个 m 行 n 列的矩阵,下标的第一个数 i 表示行,第二个数 j 表示列。 列向量定义: 一个向量可以看成是只有一列的矩阵,所以,这里讨论的所有向量都默认为列向量。 符号定义: 矩阵用大写的粗体字母表示,比如矩阵 A , B , X , 而向量用小写的粗体字母表示,比如向量 a , b , x . 矩阵的转置: 矩阵 A 的转置为 A T . 矩阵的逆: 如果一个矩阵 A 存在逆矩阵,则该逆矩阵表示为 A − 1 . 矩阵的 determinant: 如果一个矩阵 A 是一个方阵,则它的determinant表示为 | A | 单位矩阵 表示为 I , 零矩阵 或 空矩阵 表示为 0 。 矩阵的迹: 如果一个矩阵是 n ×

数组(Array)——数组介绍

Deadly 提交于 2020-02-13 03:36:03
Arrays(数组) 数组是一个固定长度的存储相同数据类型的数据结构,数组中的元素被存储在一段连续的内存空间中。它是最简单的数据结构之一,大多数现代编程语言都内置数组支持。 为何使用数组存储一堆变量 与单独为每一个元素声明一个变量名相比,我们可以使用数组的索引值访问数组中的每一个元素。 例如:我们需要实现一个系统来存储办公室所有员工的年龄,传统的存储方式如下: 我们为办公室的每一个员工创建一个变量。假设办公室由三个员工,只需声明三个变量:empl_age,emp2_age和emp3_age. 当我们新招募员工进来时,我们需要创建更多的变量来存储员工的年龄。维护这样的系统非常麻烦,每添加一个新的员工,我们就需要修改这个系统的代码。 要人工计算超过20个员工的平均年龄,逐一访问每一个变量让人头痛的。 数组数据结构的出现尝试解决这种问题。数组的特性之一就是,以一个名称保存多个相同数据类型的数据。 在这个例子中,我们可以声明一个名为employees_ages的整型数组来保存所有员工的年龄。 数组的第二个特性就是,数组中的每一个数据元素被存储在一段连续的内存空间中,我们可以以索引的方式访问数组的数据元素。 通过遍历数组的索引来访问每个员工的年龄,使得计算员工年龄的平均值变得更加容易;因为在遍历过程中,数组的名称是恒定的,只有索引在变化。 声明一个一维数组 在使用一个数组之前

矩阵特征值

試著忘記壹切 提交于 2020-02-13 02:19:32
参考:https://www.zhihu.com/question/21874816 如何理解矩阵特征值? 想要理解特征值,首先要理解矩阵相似。什么是矩阵相似呢?从定义角度就是:存在可逆矩阵P满足B= 则我们说A和B是相似的。让我们来回顾一下之前得出的重要结论:对于同一个线性空间,可以用两组不同的基 和基 来描述,他们之间的过渡关系是这样的: ,而对应坐标之间的过渡关系是这样的: 。其中P是可逆矩阵,可逆的意义是我们能变换过去也要能变换回来,这一点很重要。 我们知道,对于一个线性变换,只要你选定一组基,那么就可以用一个矩阵T1来描述这个线性变换。换一组基,就得到另一个不同的矩阵T2(之所以会不同,是因为选定了不同的基,也就是选定了不同的坐标系)。所有这些矩阵都是这同一个线性变换的描述,但又都不是线性变换本身。具体来说,有一个线性变换 ,我们选择基 来描述,对应矩阵是 ;同样的道理,我们选择基 来描述 ,,对应矩阵是 ;我们知道基 和基 是有联系的,那么他们之间的变换 和 有没有联系呢? 当然有, 和 就是相似的关系,具体的请看下图: &amp;lt;img src="https://pic1.zhimg.com/6cf43eca0f26cb1752f8fbf2633b699c_b.jpg" data-rawwidth="721" data-rawheight="449" class

【数据挖掘重要笔记day10】numpy练手题+归并排序法+插入排序法+希尔排序法+快速排序法+冒泡排序法

早过忘川 提交于 2020-02-13 02:08:38
文章目录 1、创建一个长度为10的一维全为0的ndarray对象,然后让第5个元素等于1 2、创建一个元素为从10到49的ndarray对象 3、将第2题的所有元素位置反转 4、使用np.random.random创建一个10*10的ndarray对象,并打印出最大最小元素 5、创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0 6、创建一个每一行都是从0到4的5*5矩阵 7、创建一个范围在(0,1)之间的长度为12的等差数列 8、创建一个长度为10的随机数组并排序 9、创建一个长度为10的随机数组并将最大值替换为0 10、如何根据第3列来对一个5*5矩阵排序? 11、给定一个4维矩阵,如何得到最后两维的和? 12、给定数组[1, 2, 3, 4, 5],如何得到在这个数组的每个元素之间插入3个0后的新数组? 13、给定一个二维矩阵,如何交换其中两行的元素? 14、创建一个100000长度的随机数组,使用两种方法对其求三次方,并比较所用时间 15、创建一个5 * 3随机矩阵和一个3*2随机矩阵,求矩阵积 16、矩阵的每一行的元素都减去该行的平均值 17、打印出以下函数(要求使用np.zeros创建8*8的矩阵): 18、正则化一个5*5随机矩阵,正则的概念:假设a是矩阵中的一个元素,max/min分别是矩阵元素的最大最小值,则正则化后a = (a - min)/