MUL

线性代数(1):矩阵

穿精又带淫゛_ 提交于 2020-10-01 05:04:08
本文介绍线性代数中一个非常重要的内容——矩阵(Matrix),主要讲解矩阵的性质、运算以及在常系数齐次递推式上的应用。 定义 对于矩阵 \(A\) ,主对角线是指 \(A_{i,i}\) 的元素。 一般用 \(I\) 来表示单位矩阵,就是主对角线上为 1,其余位置为 0。 性质 矩阵的逆 \(A\) 的逆矩阵 \(P\) 是使得 \(A \times P = I\) 的矩阵。 逆矩阵可以用 高斯消元 的方式来求。 运算 矩阵的加减法是逐个元素进行的。 矩阵乘法 矩阵相乘只有在第一个矩阵的列数和第二个矩阵的行数相同时才有意义。 设 \(A\) 为 \(P \times M\) 的矩阵, \(B\) 为 \(M \times Q\) 的矩阵,设矩阵 \(C\) 为矩阵 \(A\) 与 \(B\) 的乘积, 其中矩阵 \(C\) 中的第 \(i\) 行第 \(j\) 列元素可以表示为: \[C_{i,j} = \sum_{k=1}^MA_{i,k}B_{k,j} \] 如果没看懂上面的式子,没关系。通俗的讲,在矩阵乘法中,结果 \(C\) 矩阵的第 \(i\) 行第 \(j\) 列的数,就是由矩阵 \(A\) 第 \(i\) 行 \(M\) 个数与矩阵 \(B\) 第 \(j\) 列 \(M\) 个数分别相乘再相加得到的。 矩阵乘法满足结合律,不满足一般的交换律。 利用结合律

LOJ数列分块1-9全家桶

╄→гoц情女王★ 提交于 2020-09-30 16:17:30
背景 终于全艹过去了……累死我了…… 首先感谢 RP 大佬,Martin 神犇,涛队及 sh 妹的帮助 正题 数列分块1 这一题比较简单,无脑分块即可。 #include <cstdio> #include <cmath> #include <algorithm> const int N = 50000; int a[N + 5], n, Len; int Pos[N + 5], Add[N + 5]; int main() { scanf("%d", &n), Len = sqrt(n); for(int i = 1; i <= n; i ++) { scanf("%d", &a[i]); Pos[i] = (i - 1) / Len + 1; } for(int i = 1; i <= n; i ++) { int opt, l, r, c; scanf("%d%d%d%d", &opt, &l, &r, &c); if(!opt) { for(int j = l; j <= std::min(r, Pos[l] * Len); j ++) a[j] += c; if(Pos[l] != Pos[r]) for(int j = r; j >= std::max(l, (Pos[r] - 1) * Len + 1); j --) a[j] += c; for(int j =

Unity 记录 Unity Shader 碰到的一个奇怪bug记录。

不打扰是莪最后的温柔 提交于 2020-08-18 15:35:57
v2f vert (a2v v){ //return UnityObjectToClipPos(v); v2f f; f.position = UnityObjectToClipPos (v.vertex); //return UnityObjectToClipPos(v.vertex); //f.temp = v.normal; fixed3 ambient = UNITY_LIGHTMODEL_AMBIENT .rgb; //UNITY_LIGHTMODEL_AMBIENT 环境光? fixed3 normalDir = normalize ( mul (v.normal,( float3x3 ) unity_WorldToObject )); fixed3 lightDir = normalize ( _WorldSpaceLightPos0 .xyz); //对于每一个顶点来说,光的位置就是光的方向,因为光是平行光 fixed3 diffuse = _LightColor0 .rgb * max ( dot (normalDir,lightDir), 0 )*_Diffuse.rgb; //取得漫反射的颜色 //高光 fixed3 reflectDir = normalize ( reflect (-lightDir,normalDir)); fixed3 viewDir

2020牛客暑期多校训练营(第六场)J Josephus Transform (置换)

我怕爱的太早我们不能终老 提交于 2020-08-18 12:59:37
https://ac.nowcoder.com/acm/contest/5671/J 题意: 初始有一个1-n的排列,对这个排列进行m次操作,每次操作对排列进行x次k-约瑟夫置换,问m次操作后的序列是什么。 k-约瑟夫置换:n个数围成一个圈,从第1个开始,数到第k个,将这个数字去掉,操作n次直至圈为空。数字去掉的顺序就是对该排列进行1次k-约瑟夫置换后的序列。 一个置换可以定义为一个函数的复合 记f={a1,a2,a3,……an }表示数1-n的一个置换,即 i-->ai,ai<=n 对于某一个操作来说,它的x次k-约瑟夫置换对每一个数进行的置换都是相同的。 比如:7个数进行5次4约瑟夫置换 1 2 3 4 5 6 7 一 4 1 6 5 7 3 2 二 5 4 3 7 2 6 1 三 7 5 6 2 1 3 4 四 2 7 3 1 4 6 5 五 1 2 6 4 5 3 7 其f={4,1,6,5,7,3,2} 置换(函数复合)乘法满足乘法结合律 所以只需要得到第一次的置换结果,对于x次同样的置换,用快速幂的方式完成即可 有关置换群,可以去看这篇博文: https://blog.csdn.net/hzk_cpp/article/details/99239041?utm_medium=distribute.pc_relevant.none-task-blog

Hessian矩阵以及在血管增强中的应用—OpenCV实现

冷暖自知 提交于 2020-08-18 11:52:42
Hessian矩阵以及在血管增强中的应用—OpenCV实现 原文链接: https://www.cnblogs.com/jsxyhelu/p/12114981.html 有别于广为人知的Sobel、Canny等一阶算法,基于Hessian矩阵能够得到图像二阶结果,这将帮助我们深入分析图像本质。 Hessian矩阵在图像处理中有着广泛的应用:其中在图像分割领域,包括边缘检测、纹理分析等;在图像增强领域,包括边缘增强、边缘消除等。 本文从Hessian矩阵定义出发,通过清晰简洁的数学推导和讲解实现公式到C++代码的转化。 为了帮助深入理解Hessian矩阵在图像处理中的能力,我们将详细讲解和实现经典的“血管增强”算法(Frangi算法)。 目录: 一、Hessian矩阵等相关理论基础 1.Hessian矩阵的由来及定义 2.数字图像处理之尺度空间理论 3.基于尺度理论的Hessian简化算法 4.Hessian矩阵特征值的求解方法 5.Hessian矩阵特征值的图像性质 6.高斯方程及二阶导数 二、“血管增强”算法(Frangi算法)原理 1.认识血管及其增强 2.Frangi论文基本原理 3.Frangi论文优缺点 三、编写代码进行具体实现 1.项目结构 2.计算Hessian矩阵 3.Hessian特征值的计算 4.frangi2d主要过程 1.项目结构 2.计算Hessian矩阵

计蒜客 T1100:计算2的N次方(高精度乘法详解)

爱⌒轻易说出口 提交于 2020-08-17 08:21:43
上一篇博客: 计蒜客 T1099:大整数减法(高精度减法详解)  写在前面:大家好!我是 ACfun ,我的昵称来自两个单词 Accepted 和 fun 。我是一个热爱ACM的蒟蒻。这篇博客来讲解一下高精度问题中的乘法。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正,感谢大家的不吝赐教。我的唯一博客更新地址是: https://ac-fun.blog.csdn.net/ 。非常感谢大家的支持。一起加油,冲鸭!   用知识改变命运,用知识成就未来!加油 (ง •̀o•́)ง (ง •̀o•́)ง 文章目录 题目信息 题目描述 输入格式 输出格式 提示 样例输入 样例输出 题解 解题思路 解题代码 高精度乘法详解 高精度算法简介 大数的存储方式 高精度乘法实现 高精度乘法模板 高精度乘法完整模板 题目信息 原题连接: 计算2的N次方 题目描述  任意给定一个正整数 N (N≤100),计算 2 的 N 次方的值。 输入格式  输入一个正整数 N。 输出格式  输出 2 的 N 次方的值。 提示  高精度计算。  输出时每行末尾的多余空格,不影响答案正确性 样例输入 5 样例输出 32 题解 解题思路  使用两个 vector 数组 mul 和 ans 来分别存储 上一次乘以二的结果 和 下一次乘以二 的结果。 首先把 1 放到mul 数组中 ,然后进行乘以 2

以太坊合约开发中动态数组的使用【Solidity Assembly】

青春壹個敷衍的年華 提交于 2020-08-14 03:39:52
我们始终建议在开发Solidity智能合约时尽量不要使用汇编。但在少数情况下可能并没有其他选择,因此还是需要学习一些Solidity汇编开发的知识。在这个教程中,我们将学习如何在Solidity汇编开发中使用动态字节数组。 用自己熟悉的语言学习 以太坊DApp开发 : Java | Php | Python | .Net / C# | Golang | Node.JS | Flutter / Dart 1、使用Remix编辑器 首先,让我们将这个简单的合约粘贴到 remix编辑器 中: pragma solidity ^0.5.10; contract AssemblyArrays { bytes testArray; function getLength() public view returns (uint256) { return testArray.length; } function getElement(uint256 index) public view returns (bytes1) { return testArray[index]; } function pushElement(bytes1 value) public { testArray.push(value); } function updateElement(bytes1 value, uint256

GraphicsLab Project 之 Screen Space Planar Reflection

ⅰ亾dé卋堺 提交于 2020-08-13 20:02:02
作者:i_dovelemon 日期:2020-06-23 主题:Screen Space Planar Reflection, Compute Shader 引言 前段时间,同事发来一篇讲述特化版本的 Screen Space Reflection 实现 Planar Reflection 的文章。出于好奇,实验了下,看看效果如何。如下是目前实现出来的基础版本的效果: 原理 对于上图来说, Water Plane 表示水面,上半部分为实际场景的山体,下半部分为以水面为镜像进行反射之后的山体效果。 对于山体上某一个点(图中白色点)来说,它对应的镜像点为黄色点。 我们可以从 Screen Position 以及 Depth Texture 信息,计算出来白点的世界坐标位置 WorldPosition 。 然后可以以 Water Plane 所在的平面对该 WorldPosition 作镜像操作,得到 ReflectionPosition 。 得到 ReflectionPosition 之后,我们就能够计算出来 ReflectionPostion 所对应的屏幕坐标 Reflection Screen Position 。 根据前面的操作,我们就可以知道,此时 Reflection Screen Position 所反射的颜色即为 Screen Positon 所表示的颜色。

DC 概论六之multicycle_path

◇◆丶佛笑我妖孽 提交于 2020-08-13 16:09:30
注明:如需转载,请注明作者出处,谢谢~,Author:pythonlong 以下根据资料和个人体会整理,如果错误,疑问欢迎请指正,讨论!! 在讲多周期路径之前,先看下单频率路径的建立关系和保持关系 『Design Compiler calculates the default setup and hold relations and derives single-cycle timing, based on active edges.』 1.对于startpoint,active edge是寄存器的open edge。 2.对于endpoint,active edge是寄存器的close edge。 3.对于上升沿触发的寄存器,上升沿既是open edge也是close edge。 4.对于高电平出发的锁存器,上升沿是open edge,下降沿是close edge。 看一个例子: 下面进入多频率路径建立和保持 建立关系检查: 对于多频率设计,在两个时钟之间可能存在多个建立关系,对于目的时钟的的每一个锁存边沿,找到捕获边沿最近的发送边沿。发送边沿和捕获边沿的最小关系决定了这个路径上的最大延迟。 保持关系检查: 简单说就是,数据从startpoint发出之后,在被endpoint的active edge 锁存之前,不能被捕获。这个时序的最大值决定了,这个路径的最小延迟。 如下图所示:

mysql笔记 <一>

允我心安 提交于 2020-08-13 11:49:09
一、mysql基本管理 1.启动mysql /etc/init.d/mysqld 是一个 shell 启动脚本,启动后最终会调用 mysqld_safe 脚本,最后调用 mysqld 服务启动 mysql, 如下: /etc/init.d/mysqld start 或/usr/local/mysql/bin/mysqld_safe & root 26221 1 0 08:55 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/mysql.pid mysql 27071 26221 0 08:55 ? 00:02:26 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mysql-error.log --open-files-limit=65535 --pid-file=/data/mysql/mysql.pid --socket=/tmp/mysql.sock --port=3306