首先,需要回到最原始的地震矩的表达式: 已知strike,dip,rake 根据strike和dip可以求出v,根据strike,dip,rake,可以求出u. 把求出来的v和u互换,相当于原来的位错矢量变成法向量,而法向量知道了,面也就知道了,strike和dip就知道了. dip可以求出这一项很容易理解,至于strike 是因为strike是北方向顺时针旋转到断层面与水平面的交线的角度,很容易知道,一旦面确定了,这个线也是确定的,可以求出来. 另一方面,原来的法向量变成了位错矢量 ,rake…
从原理上理解MySQL的优化建议 预备知识 B+树索引 mysql的默认存储引擎InnoDB使用B+树来存储数据的,所以在分析优化建议之前,了解一下B+树索引的基本原理. 上图是一个B+树索引示意图,每个节点表示一个磁盘块,也可以理解为数据库中的页. 分析下B+树索引的查找过程,如果我要查询主键为35的数据,索引会怎么走? 首先会判断35小于根节点37,继续查询左子树 判断35大于22和33,那么进入右子树,找到了叶子节点33 继续遍历找到35 最后取出其data即可 在索引的情况下,查询35只…
NodeJS是近年来比较火的服务端JS平台,这一方面得益于其在后端处理高并发的卓越性能,另一方面在nodeJS平台上的npm.grunt.express等强大的代码与项目管理应用崛起,几乎重新定义了前端的工作方式和流程. NodeJS的成功标志着它的强大,但是不是所有情况都适合应用NodeJS作为服务器端平台呢? 答案当然是否定的,而网上也是众说纷纭.那我们从原理出发了解一下NodeJS的适用情况. 在讲NodeJS之前我们不仿先看一下传统(以Apache为代表)的服务器端处理平台处理并发的方式…
开发者对Base64编码肯定很熟悉,是否对它有很清晰的认识就不一定了.实际 上Base64已经简单到不能再简单了,如果对它的理解还是模棱两可实在不应该.大概介绍一下Base64的相关内容,花几分钟时间就可以彻底理解它.文 章下边贴了一个Base64的编解码器,方便阅读文章的同时来实验. 一. Base64编码由来 为什么会有Base64编码呢?因为有些网络传送渠道并不支持所有的字节,例如传统的邮件只支持可见字符的传送,像ASCII码的控制字符就 不能通过邮件传送.这样用途就受到了很大的限制,比如…
原文链接:微服务化的数据库设计与读写分离(来源:刘超的通俗云计算) 数据库永远是应用最关键的一环,同时越到高并发阶段,数据库往往成为瓶颈,如果数据库表和索引不在一开始就进行良好的设计,则后期数据库横向扩展,分库分表都会遇到困难. 对于互联网公司来讲,一般都会使用MySQL数据库. 一.数据库的总体架构 我们首先来看MySQL数据的总体架构如下: 这是一张非常经典的MySQL的系统架构图,通过这个图可以看出MySQL各个部分的功能. 当客户端连接数据库的时候,首先面对的是连接池,用于管理用户的连接…
问题背景 VIM在打开文件的时候如果遇到两种换行符风格(dos与unix)共存的文件,通常会在行尾显示出烦人的^M.如果^M较少,比较容易定位到哪几行出了问题,但是如果^M较多,就很难搞.下面先给出解法,再来做分析. 解决方案 ^M较少,需要定位哪几行包含^M,只需要在vim中输入: /\r ^M较多,需要定位到哪几行不包含^M,只需要在vim中输入: /^\(.*\r\)\@!.* 原理解析 要了解如何定位^M,首先得知道^M是如何产生的.要了解^M的产生原因,首先得了解VIM的filefor…
题目链接:http://lightoj.com/volume_showproblem.php?problem=1257 思路:首先需要用到一个知识点就是树上任一点到树上最长直径的某一个端点的距离最远,因此我们可以用dp[u]表示从u点出发到的最远距离,然后从任意一点出发,一遍dfs求出树上最长直径的某一个端点,然后从这个端点出发,再次dfs求出另一个端点,最后在从求出的端点出发进行dfs更新.每次做dfs时都更新一下dp. #define _CRT_SECURE_NO_WARNINGS #inc…
開始的时候是暴力dfs+剪枝.怎么也不行.后来參考他人思想: 先求出每一个点之间的最短路(这样预处理之后的搜索就能够判重返回了).截肢还是关键:1最优性剪枝(尽量最优:眼下的状态+估计还有的最小时间>min就return !),2:可行性截肢:假设当前状态+估计状态已经不可行,return.(注意考虑是 continue.还是 return !).以及放的位置!在出口放的效果一般好一些(不在下次循环内部)(理由:若该状态是后面的状态进入的,前面的会dfs到非常深,所以.放在最前面.一起推断下,不…
  PID控制应该算是应用非常广泛的控制算法了.小到控制一个元件的温度,大到控制无人机的飞行姿态和飞行速度等等,都可以使用PID控制.这里我们从原理上来理解PID控制. PID(proportion integration differentiation)其实就是指比例,积分,微分控制.先把图片和公式摆出来,看不懂没关系.(一开始看这个算法,公式能看懂,具体怎么用怎么写代码也知道,但是就是不知道原理,不知道为什么要用比例,微分,积分这3个项才能实现最好的控制,用其中两个为什么不行,用了3个项能好…
Atitit 泛型原理与理解attilax总结 1. 泛型历史11.1.1. 由来11.2. 为什么需要泛型,类型安全21.3. 7.泛型的好处22. 泛型的机制编辑22.1.1. 机制32.1.2. 编译机制32.2. 参考31.泛型历史泛型编程(Generic Programming)最初提出时的动机很简单直接:发明一种语言机制,能够帮助实现一个通用的标准容器库.所谓通用的标准容器库,就是要能够做到,比如用一个List类存放所有可能类型的对象这样的事:泛型编程让你编写完全一般化并可重复使用的…