你好获取登录信息中




首页 主站 文章列表 分类列表
文章列表更多

React初遇 对比vue

2021-03-09 14:37:28

最近开始在学习React,在此之前只对vue有一定研究,虽然说框架的思路是相近的,但是实际上还是有一些差异的,所以在这记录一下。

既然要学习React,那么首先是打开它的官网看文档咯。打开React的文档之后,首先看到的是熟悉jsx的写法。想之前刚刚工作第一次接触vue的时候,看到jsx的时候就封蒙——为啥这样的东西还能在浏览器中执行?vue虽然平时都是通过模板,但是同样可以使用render函数,实际上在vue的项目中会把模板语法编译成render函数,并且在render中通过Babel插件可以实现jsx的写法。这个jsx实际上并不是js的东西,只不过会在打包过程中被相关插件(目前普遍用的Babel)转换成浏览器可以自行的代码,类似于createElement这种方式。而在浏览器中之所以能调试并且看到jsx的写法运行,那也是在source map的帮助下找到了执行语句被编译之前的样子。以前无论是js还是css等文件,在网络传输的时候,都可以删掉空格和换行符来减少体积,到后来甚至直接将长长的变量名字替换成只有一个字符的名字。但是这样一来,这份js代码虽然执行起来没有任何区别,甚至可能有更高的执行效率,但是对人来说已经完全不具备可读性了,这就如同被编译成二进制的C语言程序一样。庆幸的是出现了source map,通过它可以将这份被压缩的代码与原始的代码联系起来,这样就可以调试了。虽然不是所有浏览器都支持,但是万幸的是,这个标准是不影响在浏览器中执行的情况的,仅仅是在调试的时候才会需要这个东西,并且如今哪个开发人员会没有谷歌浏览器呢?随着前端技术的迅速发展,打包技术的出现,这一切几乎是翻天覆地的变化。这甚至意味着,可以甚至可以通过c的语法写一段代码,并将其打包成一段实现相同功能的js代码,然后浏览器执行的还是js代码,但是通过source map可以看到c的那段程序在执行,对付一个小小jsx当然也不是什么难事。

接下来的部分似乎没有啥问题,一直往下走,组件这里,可以看到React的组件可以是函数声明,也可以是类声明。函数声明的方式非常简洁,虽然vue没有,但是这并不难理解。类的声明方式是ES6语法,并且类从React.Component继承,使用构造函数的时候,记得调用父类构造函数。相比之下,vue的组件是一个对象,里面分类存储着参数信息(props)、数据(data)、方法(methods)和生命周期钩子等,当生成组件的时候,vue会对应处理各个部分,比如根据参数信息读取参数或设置默认值、方法使用bind(this)进行绑定,并添加到this上,用的时候都是通过this访问。而在React中参数会被作为类的参数传入,由React.Component的构造函数处理到this.props上,而自身状态可以根据实际情况放在this或者this.state上。但是vue中更新自身状态直接设置就好了,而React则需要调用setState才能追踪数据变化。原因在于vue使用了Object.defineProperty做数据劫持(vue3中将会使用反射,这更方便,不过其实我有点担心反射的性能),给data中字段的数据设置值的时候,会调用对应的set方法实现检测,同时,也正是如此,vue可以做到更加精细的更新。

vue与React生命周期对比

接下来就是声明周期了,vue的生命周期钩子特别多,创建时会依次调用beforeCreatecreatedbeforeMountmounted四个钩子,分别在组件创建和挂载前后触发。销毁时则有beforeDestroydestroyed的两个钩子,更新时beforeUpdateupdated两个钩子,这些都是在几个关键的事件前后的钩子。此外,还有几个其他类型的钩子。而在React中,构造函数本身是一个很好的声明周期钩子,他对应着vue的beforeCreatecreated。一般在组件挂在前的事情可以在组件创建做完,所以React中只有componentDidMount与vue的mounted对应(实际上是存在componentWillMount的,但是大概是没啥用所以准备取消了)。同样,销毁完的组件也没有任何可以访问的数据,所以React也只提供了componentWillUnmount与vue的beforeDestroy对应。在组件更新时,钩子有shouldComponentUpdatecomponentDidUpdate,其中shouldComponentUpdate主要用于判断组件是否需要更新(虽然也有componentWillUpdate,但是同样即将过时。。。)。

然后再说说插槽,React支持插槽,但是在使用的时候还是有些区别的:不像vue插槽有专门的$solt,React中的插槽会被作为参数children传入,使用时使用this.props.children访问。匿名插槽在传入子组件的时候和vue一样处理,对于需要使用具名插槽的时候,则需要以js对象的格式写在子元素内部,同时用对象的方式访问this.props.children

ref引用在React中也有很大区别。首先,ref引用需要React.createRef()来创建,同时,他是给原生dom组件用的。如果要访问子组件,React通常使用参数传入一个方法,然后子组件通过这个方法传入自身或相关方法给父组件保存后才可使用了。

好了,文档里面看到需要注意的基本都看了,接下来就是看实际项目了,不难发现ui用的是antd,然后查下它的文档,当然这些ui库都是差不多的,没有特别需要留意的地方,不过表格跟之前用的库还是有些区别,但是也不难。

然后看到了另一个东西——mobx,这个初一看是个状态管理,那就类似vuex。当然它确实是个状态管理,但是由于React本身是没有做数据劫持,mobx却是可以实现这一点,所以,在这里面可以实现诸如计算属性之类的操作。当然,,mobx通常配合装饰器语法使用,这又是个新概念,但是这显然是在java中的注解语法中获得了灵感(之前碰到的箭头函数,虽然有点像PHP中数组键值对的写法,但是显然灵感来自lambda表达式,格式和C#的lambda表达式完全一致,且java中也引入了非常相似的lambda表达式语法)。当然,有看到mobx做了一些顺序上的优化和其他处理,使得mobx性能更好,但是可能会带来一些问题,目前暂时没看明白具体有啥影响,但是碰到问题的话,这可能会是一个排查的点。

除了mobx,React还有个状态管理叫做Redux,因为暂时用不上没细看是否是有做数据劫持,不过这个状态管理的理念上,存储的状态是个快照,所以不应该直接改变状态,如果需要改变状态,就需要action。这类似于vuex的Mutation操作state,所有操作全部对应一个方法,通过参数进行区分。当然这是一个大致的使用,实际使用是可能会发现更多问题并需要注意更多细节。

参考链接

  1. React文档:https://zh-hans.reactjs.org/docs/
  2. 具名插槽(React):https://blog.csdn.net/u013611033/article/details/105566201

宝藏世界视频文案

2020-12-09 17:11:35

在11月国服被关之后就有了做个工程量大点的纪念视频的想法,毕竟玩了3年多的游戏就这么没了。但是那时候缺少具体想法,缺少素材等因素一直搁置。随后国服暂时重新开服,考虑到单个视频时间不宜太长,所以先录了一段工会纪念的,毕竟这是个多人游戏,工会最能体现这个特点。之后翻自己存的素材,有想对整个游戏和我自己一路的发展做时间线来做个纪念视频的想法。

在工会道别视频之后就开始了这个视频的素材整理和收集。因为最开始玩这游戏的时候也没想过会花这么多时间,也就随便玩玩,所以早期的素材都挺少的,不得不重新补录了一段,补录的那段肯定不会是当初的效果,再比如开头打本那段,我当时是用的骑士的,但是骑士已经改版了,前期打不出那么高的伤害了,所以用小号枪械打的,不要去在意那些细节了,然后从网上找了几段素材。

因为我手上多人的素材其实挺少的(应该说啥素材都少,一个是当时配置不行,另一个是当时也没想着录制),特别是多人部分的。作为一个社交游戏,很大程度上能坚持玩下来,一方面是自己号玩了那么久,另一方面也是认识的人在,或者认识更多的人了。所以决定在结尾插入一点多人素材和感谢名单。

接下来花了两个晚上处理bgm衔接。虽然最后效果还是不尽人意,毕竟水平有限,实在是不会弄。

然后就是把手上的素材串起来了,这里花了好几天的时间。中途发现还是缺少很多素材,所以这一段补的素材都没问原作者了。

所用bgm:

第一段:游戏开局原声录制,祖传游戏bgm,也是萌新时候本着尽量使用游戏原本bgm玩游戏的想法一直听着的。

第二段:《没有什么不同》,这时候也象征着我听腻了游戏原祖传的bgm,已经关掉游戏bgm自己放音乐了。同时也算是纪念那时候花的时间和精力。

第三段:《红尘客栈》,这时候其实我玩游戏的时候已经没有放bgm了。不过这歌也是那个时期听到的所以拿过来试了下,好像能接上就用了(之前还试了点别的)

第四段:《好好》,这算是规划时预定就用的结尾了。3年,我们不仅要好好的开始还要好好的结束。

使用的他人素材:

冰法究无畏那段素材:。来自羯大佬。也是我最早去问着要的素材,毕竟这也算是一段珍藏的回忆了,谁能料到有一天冰法的技能会有这么大的改动呢?当初也正是看这个视频开始初次拉究无畏的尝试

4.1s究月:。来自大笨笛。国服记录,我也参与了肯定要的。看不到我可以参考这个视角

宏无头究月:。来自铃音。不知道那时候玩过的还有没有人记得铃音的宏呢?(虽然我一直用的自己做的。。)当时系统资源实在有限 仅仅找到几个刚出无头时候的视频。那时候我还在弄枪呢。不过根据视频时间来算的话,我那时候也2w5+650总了。

小丑任务:

碎掉的宝石:。找遍了找不到升宝石碎掉的视频,虽然我还存着一个碎了的宝石,但是没有这个真实。

2020-08-22 11:34:10

有个小孩,在父母的陪伴下,在迷宫中探索着。迷宫中有些台阶,小孩每次通过都会摔跟头,长此以往,小孩开始对这些台阶有了厌恶的心里。但是小孩对这个迷宫仍然充满好奇,仍然在孜孜不倦的探索着。小孩在慢慢长大,父母逐渐跟不上小孩的步伐。小孩开始有了一个人探索的时间,在这些时间里,小孩只要有其他路可以选择,就绝对不会碰有台阶的路。甚至他会避开陡坡。

时间飞逝,转眼小孩已是少年。父母已经完全不能跟上他的步伐了,他也在路上认识了许多小伙伴。能跟着这些小伙伴一起探索迷宫,一起休息,少年感觉十分愉快。但是并不是每个人对这个事情那么愉快,他们不希望那些走的慢的影响到走的快的人的步伐。于是在某个月黑风高的夜晚,他和他的小伙伴被分隔开了,在黑暗之中,少年或许是因为过台阶时不利又或许是因为根本就绕过台了台阶但走了一条更远的路,他终究没能和他曾经的伙伴走在一起,现在在他身边的几乎都是未曾相识的人。当然,也还是有曾经那群伙伴中的也出现在这了,但是,曾经他那些有说有笑的伙伴却都在篱笆另一侧。每当附近没人时,他就会伤心的哭,但是他并没有意识到这场分别意味着啥。他渐渐发现偶尔在篱笆矮下去的拐角,他偶尔还能和曾经的那些小伙伴见面;但是他也发现新的小伙伴前进的速度都挺慢的,甚至有许多放弃前进的。少年不愿和他们为伍,但是他也不愿意孤身前进。于是当看到拐角时,少年就会跑过去试着和曾经的小伙伴谈笑;而其他时间,或许是因为奔跑得太累亦或是想等个人一同前进,也或许因为他不想通过哪些台阶和陡坡,感觉要长期跟上以前的小伙伴已经很难了,虽然他还在向前走着,但是脚步却慢了不少。终于,他跟后面那些走的比较快一点的到了一起。

但是这样的日子持续不了太久,他们在一个路口再一次分别,他们已经错过了更近的路,只能选择自己更愿意去走的路了。于是,在新的道路上,少年认识了许多跟他一样不愿走台阶或是陡坡的人,尽管大家嘴上互相勉励着,但是真正碰到台阶或是陡坡的时候,通过的人总是那么少,大家实际上仍然更多的时候在通过自己更熟练的地形。与此同时,少年也已经成为青年,他对迷宫本身的兴趣已经开始逐渐减退,他已经知道,这个迷宫是永远也走不出去的,他要做的收集迷宫中的吃的,至少有一天自己走不动路了也不会饿死。他所看中的是一块较大的饼和一块中等大小的饼。那块较大的饼在迷宫更深的地方,距离是如此遥远,并且路线也更为复杂。他并不想,让自己太累,何况边上和后面还有那么多人,他们甚至可能连更小的饼都吃不到,于是他选择了那块中等大小的饼,倘若有可能,就再去拿那个更大的饼。当然,这段路对他来说,虽不是触手可及,但也并非那么遥远,只是他不走台阶不爬坡的习惯让他绕了一大段路。不过考虑其他人也同样在绕路,因此他似乎仍然走在前面。于是他在一边向前走着,一边探索着迷宫中其他花花草草,或许有一天,这些花花草草能做成调料——枯燥的迷宫还是需要有点调节。

终于有一天,他拿到了这个饼,虽然不是更大的那个,甚至还撒了一点,但是他至少还算愉快的拿到了这个饼。他等这一天很久了,虽然他也眼馋更大的饼,但是他实在是等不及了。他拿着这块饼,沾着自制的调料美美的吃了起来,一切看上去都是十分美好的。可是日复一日的吃着相同的口味总有一天会腻,他需要去换一些其他调料来解决问题。而这时他才发现,自己材料并不都能转化成调料或者食品,而能做出来的那些,虽然味道不错,但是比起市场上那些调料却又缺少包装,这导致他要换更多更好的调料变得非常艰难。长此以往,他开始有点厌倦了眼下的生活。

有一天,他遇到了一个已经吃到更大的蛋糕的人,但是那个人仍然在向前探索着。他拿手中的饼换了一些蛋糕来品尝,但可惜,饼实在太小,换不来更多的蛋糕,而别人还要继续前进。见过真实存在的蛋糕之后,他便觉得空气中偶尔飘来的山珍海味的气息也来自迷宫之中,只是在某个角落等着人去发现,手中的饼已是味同爵蜡。于是他想,他为啥就不能为了更好的目标继续前进呢?细细想来,他曾经也不是拿不到那张更大的饼,这或许需要一点运气,但是他曾经也有这个能力。而那些冲在更前面的,却也未必走得比他快,也未必休息得比他少多少。诚然,这中间不乏一些出生就在更前面的,但是如果不肯跨越陡坡和台阶,或是其他情况而绕路的话,这便会比别人慢很多,如果过多的贪恋休息的话,更是只会停滞不前。于是他便想继续探索,而他前进的动力已经不再是为了探索本身,而是寻找更好的食物。虽然他对那块更大的饼有了些怨念,但是他已经不需要更大的饼了,也来不及去拿了。他只能转身走边上的小路去探索其他东西。这边的地形更为复杂,也不像之前有人或者路标能指明方向,即使偶尔能见到一处路牌,几乎也都是在灌木或草丛之中,这中间,既有真正的方向,也有纯属而作剧的玩笑。而他探索迷宫的能力也已经随着时间流逝消退了不少——即使是以前能轻松通过的平路也让他气喘吁吁。而路线上更是一次又一次拐进同一个死胡同,而这种试错的成本却又随着时间推移逐渐增加。他不敢贸然前进,独自向前可真不是那么容易的。他希望能有个灯来照亮前进的路,可是他没有;他希望有束光能指出其他食物的位置,可是这些食物的位置本就是随机的;他希望有个人能一同前进,一起面对路上的困难,可是大家却不得不各自选择自己的路。或许有一天……,也或许……。

简单的化学反应自动配平

2020-08-15 15:35:46

前言

高中时有做化学反应方程自动配平的想法,当时其实已经想到了用方程求解,当时并没有好的方法去求解,所以鸽了。之后也没有再学习化学了,所以就也没怎么想过这事了,前几天忽然想起这事来于是就着手做了一个,用了线性代数的东西,不过也不是很难所以讲讲原理.成品测试地址点我

化学反应的原子守恒

对于一个化学反应来说,无论如何反应,反应方程两边的各种原子数目都是相同的,例:

2KMnO4=加热=K2Mn04+MnO2+O2↑

左侧有2个K,右侧就一定也有2个,左右2个Mn,右侧也是2个,左侧8个O,右侧也是8个。

如果我们依次设这4种分子前面的系数为x1、x2、x3和x4的话,则有:

x1KMnO4=加热=x2K2Mn04+x3MnO2+x4O2↑

然后得到方程组:

  1. x1=x2*2 ①(K守恒)
  2. x1=x2+x3 ②(Mn守恒)
  3. x1*4=x2*4+x3*2+x4*2 ③(O守恒)

通过解方程的方式不难判断出各项两两之间的比值,我们只要求出最简整数比就可以得到各部分的系数了。

比如②式减①式可以得到0=x3-x2

  1. x3=x2 ④

将①式和④式带入③式可以得到x2*2*4=x2*4+x2*2+x4*2,即:

  1. x4=x2

然后取x2=1得

  1. x1=2 x2=1 x3=1 x4=1

从而方程得到配平

通用的线性方程组求解——线性代数

上面的计算是需要通过观察的方式来解方程,但是计算机只是机器,它并不能做到真正意义上的观察(所谓机器学习,只是通过大量训练数据,判断出每个条件下输出啥的可能性最高,这个过程跟人的条件反射类似,所以也叫神经网络,但实际上机器并不会去理解这个条件的含义以及这么做会发生啥),因此我们需要找到一种通用的解方程的方式。

首先我们可以看到,我们的方程中有些缺少的项,如果我们要做通用的计算方法,这些空出来的部分显然会对我们造成困扰,所以我们需要把这些确实的项补上,于是得到

  1. x1*1=x2*2+x3*0+x4*0
  2. x1*1=x2*1+x3*1+x4*0
  3. x1*4=x2*4+x3*2+x4*2

好了,这就是一个一个比较标准的形式了,但是为了统一处理,我们还需要进一步转换,将所有数移动到方程的一侧,让另一次等于0

  1. x1*(-1)+x2*2+x3*0+x4*0+0=0
  2. x1*(-1)+x2*1+x3*1+x4*0+0=0
  3. x1*(-4)+x2*4+x3*2+x4*2+0=0

好了,这个方程就整理结束了,它的每个式子都是一模一样的形式的,每一项也都是一样的一个系数了。但是呢,计算机仍然不能理解x1-xn这种未知变量,反正我们计算的时候要的也就是前面那个系数而已,未知变量是啥符号本身我们不需要关心,所以我们也把它省略掉于是得到这样一个东西

  1. -1 2 0 0 0
  2. -1 1 1 0 0
  3. -4 4 2 2 0

好了,这就包含了我们方程中的所有信息了,但是,它只是一堆数字,处理数字自然就是计算机拿手的活了。而这个东西就是一个矩阵。所谓线性代数,本质上核心就是把多元一次方程(一次方程也就是所谓线性,当其中一个未知量变化时,函数图像是一条直线,所以叫做线性,而二次方程或者其他的方程对应函数图像是抛物线或者其他曲线)。接下来我们就是要解这个方程了。

我们正常解方程,除了直接把已知的变量表达式带进去以外,还有两式相加减、等式两边同时乘以某个数的操作,那么这些操作在线性代数中仍然存在。比如我们让第一个式子方程两边同时乘-1,可以得到:

  1. 1 -2 0 0 0 x1*(+1)+x2*(-2)+x3*0+x4*0+0=0
  2. -1 1 1 0 0 x1*(-1)+x2*(+1)+x3*1+x4*0+0=0
  3. -4 4 2 2 0 x1*(-4)+x2*(+4)+x3*2+x4*2+0=0

这样,我们第一行式子就算处理完了,我们已经得出1个x1和其他变量的关系了,接下来,我们希望得到x2的关系,但是,这时候把x1带进来就是一个不明智的选择了,因为我需要x1的时候我会需要知道x2,然后我需要x2的时候我又得知道x1,就死循环了,因此我们接下来要得到一个不包含x1的式子。但是矩阵这个行列还是得对齐的啊,那么我们其实需要的是让x1的系数变成0就好了。第一行已经用了,那我们自然就会想选第二行来操作。第二行的x1系数是-1,那么只要我们第一行正好已经求出了一个x1的关系,那么我们为了得到0,我们就应该加上一个第一行,或者更通用一点,我现在是多了-1个第1行,那我就减去-1个第一行这样。然后得到

  1. 1 -2 0 0 0 x1*(+1)+x2*(-2)+x3*0+x4*0+0=0
  2. 0 -1 1 0 0 x1*(+0)+x2*(-1)+x3*1+x4*0+0=0
  3. -4 4 2 2 0 x1*(-4)+x2*(+4)+x3*2+x4*2+0=0

这样x2的关系就有了,并且还不包含x1了。但是这个系数是-1,我们不太满意,这会给之后的计算造成困扰,我们应该把它和x1一样变成单位数量1的表示,于是,方程两边同时乘-1得到

  1. 1 -2 0 0 0 x1*(+1)+x2*(-2)+x3*(+0)+x4*0+0=0
  2. 0 1 -1 0 0 x1*(+0)+x2*(+1)+x3*(-1)+x4*0+0=0
  3. -4 4 2 2 0 x1*(-4)+x2*(+4)+x3*(+2)+x4*2+0=0

好了,我们还有最后一行数据,同样的方法,先把里面的x1消掉(即减去-4个第一行)得到

  1. 1 -2 0 0 0 x1*(+1)+x2*(-2)+x3*(+0)+x4*0+0=0
  2. 0 1 -1 0 0 x1*(+0)+x2*(+1)+x3*(-1)+x4*0+0=0
  3. 0 -4 2 2 0 x1*(+0)+x2*(-4)+x3*(+2)+x4*2+0=0

但是这仍然不是一个满意的结果,里面包含了-4个x2,那么我们继续减去-4个第二行得到

  1. 1 -2 0 0 0 x1*(+1)+x2*(-2)+x3*(+0)+x4*0+0=0
  2. 0 1 -1 0 0 x1*(+0)+x2*(+1)+x3*(-1)+x4*0+0=0
  3. 0 0 -2 2 0 x1*(+0)+x2*(+0)+x3*(-2)+x4*2+0=0

然后除以-2让它得到一个单位的x3的表示

  1. 1 -2 0 0 0 x1*(+1)+x2*(-2)+x3*(+0)+x4*(+0)+0=0
  2. 0 1 -1 0 0 x1*(+0)+x2*(+1)+x3*(-1)+x4*(+0)+0=0
  3. 0 0 1 -1 0 x1*(+0)+x2*(+0)+x3*(+1)+x4*(-1)+0=0

好了,我们现在3行数据全部处理完毕了,如果有更多的行,我们只要按相同的方法做就行了。

但是似乎,这是一个4元方程,我们3个方程是求不出唯一解的。怎么得出反应方程的系数稍后再谈,先留着你们想想。如果你仔细观察的话就会发现这种格式下行数应该等于列数-1的时候我们才能求出xn的值,然后代入第n-1行,求出xn-1,然后一直求到x1。这个行数就是矩阵的 秩 。当矩阵的秩小于n时,我们是缺少式子的,我们能找到他们之间的关系,但是不能算出一个具体的数。只有秩等于n时才会有唯一解。

未知变量和等式关系数量相同就一定能解吗?

答案显然是不行。我们应该都有见过这个一个方程:

  1. x=y
  2. y=z
  3. z=x

似乎是有3个不重复的式子,但是仔细想想前两条其实是能推出第三条的,这条是无意义的式子,在线性代数中表现如下

  1. 1 -1 0 0
  2. 0 1 -1 0
  3. -1 0 1 0

第一二行显然不需要处理(或者说处理完结果也是一样,除以1是不会改变的,加上一个被0乘的数字也就是加0,也不会变),然后就是第三行,按我们之前的加-1个第一行。看好了,这跟第二行是不是只差个符号?我们把它用之前的方法继续处理

  1. 1 -1 0 0
  2. 0 1 -1 0
  3. 0 -1 1 0

看好了,这跟第二行是不是只差个符号?我们把它用之前的方法继续处理

  1. 1 -1 0 0
  2. 0 1 -1 0
  3. 0 0 0 0

然后就会发现这一行数据全部被消掉了,各项均为0了。那么这一行也是没有意义的,如果计算时碰到这样的行,那就应该把这一行删掉然后用下一行代替这一行的位置重新计算了。不过这里没有下一行了,所以这个方程的解也不唯一,算秩的时候也要把计算后全0的行去掉才能得出正确结论。

那方程多了会发生啥?

方程过多的情况比较少,我这也就不举例子了,但是你可以想象一下,如果多出来的行全为0,那么无伤大雅,多出来的部分被去掉就行。如果不是0我们会得到一个类似这样的矩阵:

  1. 1 a b
  2. 0 1 c
  3. 0 0 1

那么这个矩阵意味着啥呢?我们把方程还原回来就是1=0了!这显然是一个不成立的结果。这也正是因为定义了过多的方程,并且这些方程中存在冲突。例如我一边希望x=1一边希望x=2,然后代入的时候就会出现矛盾了。至于更多的方程的时候,因为矛盾已经产生,所以无法再继续进行下去了。不过做矩阵计算的时候,只要没出现矛盾(即秩大于n)就应该继续计算直到把多出来的行全部化为0或者出现矛盾。

最后看看为啥反应方程能得出唯一解

我们最后处理出来的矩阵长这样

  1. 1 -2 0 0 0
  2. 0 1 -1 0 0
  3. 0 0 1 -1 0

你仔细想想我们实际的反应方程,我们系数全部乘x不也是成立的吗?但是我们不会那样写,这只是数学上成立。实际上我们要的是一个最简比,这样解当然得不到最后的结论。同时你应该发现我们解的这个方程常数项始终是0,实际上我们可以去掉,我们只要得出xn-1=?xn就可以了。所以我们实际解的方程的矩阵是这样

  1. 1 -2 0 0
  2. 0 1 -1 0
  3. 0 0 1 -1

然后我们令x4=1;然后可以得出

  1. x3=-1*(x4*(-1))/1=1
  2. x2=-1*(x4*0+x3*(-1))/1=1
  3. x1=-1*(x4*0+x3*0+x2*(-2))/1=2

当然,如果这中间出现了分数,则应化至最简单然后给各项都乘上。另外,由于绝大多数编程语言都没有分数计算的功能,而使用小数,不仅丢失精度,也不知道分母是多少,这会给我们的计算带来许多不确定性,因此需要自己实现分数计算,包括前面的数据处理就应该使用分数(很巧我用的例子正好都是整数),加减乘除都是初中难度就不多说了,唯一复杂的是怎么样将分数化简到最简。一个简单的思路是从二者之间值较小的那个取起,然后依次减少直到为2,如果中间的数字能被分子分母同时整除就用这个数进行依次约分。另外记得负号的处理,不然会很痛苦的。

最后谈谈特殊情况

这里还有一种特殊情况,如果我们矩阵算到了这个程度(c≠0)

  1. 1 a b c
  2. 0 0 d e
  3. ? ? ? ?

那么我们显然没法通过乘法让第n行第n列(这里是n=2)的0变成1了,这时候需要将下一行拿过来计算了,如果所有的行都这样那么这个方程就会因为xn不能确定而卡住,那么这样的方程也是求不出唯一解的

我又双叒叕失眠了

2020-06-06 16:33:59

不知不觉已经工作一年了,当初跟我同一天入职的还有另一个人,前段时间他离职了。我虽然以前也有想过这种事情,但是没想到这一天这么快就来了。毕竟出门在外,有很多东西真的太难了,我也曾想过我是该在家还是出来。但是如果我现在就回家乡工作的话出来的概率几乎为零。

梦想

“你的梦想呢?说好的珠海呢?”这是我堂姐在我高考后填报完志愿时跟我说的话。是的,我错过了一个来珠海的机会。可是这也是必然的,毕竟珠海没啥高校,并且,至少就我们省而言,考广东省内的学校“性价比”太低。我有个小学同学,就表示考了个一本的分数,填广东的学校,然后基本上就是省内二本的水平。不过在这之后,还有一次机会——校招。现在来说,已经是前年10月左右的事情了,正好是珠海的多家企业来我们学校进行校招。那我自然不想放弃这次机会。然后一番折腾之后,我应聘了两家。中间还有一番折腾,以及一些我自己失误导致一些不太舒服的地方,这里就不多说了。总之,就这样我跟珠海这边的企业签订了三方协议,毕业之后,我就来珠海了。

我曾在省会这种二线城市(当然现在是一线了)转晕了头,出门就打的去个地方从未少于半小时能到;以及儿时在去过一趟深圳,每天的活动就是起床坐老久的车去爸妈各种亲戚和以前的同事(因为那个年代的改制,所以)家串串,然后又是坐挺久的车回去,然后就可以准备洗洗睡了。即便是工作,也会是在长时间的通勤中奔波。相比之下,我家那种小城市,大多数地方都能半小时内到达,偶尔有远一点的,我都觉得坐了老久的车了,但至少今天来看,公交一小时不堵车也基本能覆盖全城了。此外大城市的消费也是让人望尘莫及的。因此,我对大城市的印象便一直不太好。

当然,我也不是说大城市就没有啥好处。举个例子,我去深圳的时候,曾在一个小区见过大概是叫健身公园(吧)的地方(这个现在已经普及了),而我们这种小城市以前是没见过的,再诸如初中那会儿在长沙坐的地铁,不得不说这个是真的方便,而深圳则是在03年我去时就听到地下一直有动静,据说是在修地铁了;大城市的消费是高,但是工资也高,生活成本是差不多的,但是剩下来的那部分钱却要更多,在大城市要购买高档耐用品显然比在中小城市容易得多(家里有矿除外),虽然生活必需品的价格会高些,但是这些东西的价格,基本差距不大,特别是在这个互联网发达的时代,大不了网购,全国基本就一个价了。但是,相比之下为了08年奥运会,那种健身公园也没过多久也找到了类似的地方,并且还有更多的在建设。是的,中小城市失去了最早体验这些东西,但是这种东西仍然会存在于中小城市。再比如宽带,大城市无疑能办理到速度更快的宽带,可是呢,如今农村也会有价格合适且速度良好的宽带了,小城市想找个用着舒服的宽带自然也不是什么难事(只是余下来的钱不多了,并不希望在这地方花太多的钱罢了)。

当然初中时,因为很多原因,对金山软件有一些感情,加上前面说的那些,我想找一个合适的城市,它不是那种我前面所说的大城市,并且发展状况也不错,至少政府眼光要比我们那种小小城市跟长远一点。珠海正是这样的一座城市。因此,我曾说过希望将来有一天能到珠海生活。这便是我曾经的梦想。

现实

自始至终我都是凭借当初的几张图片,以及自己的理解来揣测在珠海生活的模样。至于珠海到底是什么样的,只有来了才知道。

我家作为京广线沿线城市,自然是国内最早通上高铁的城市,并且坐高铁直达广州,然后从广州坐城轨到珠海,这中间除了需要一次转车以外似乎还挺顺畅的。此外家乡那小小城市也终于是在9012年修好了机场能飞一些城市,但是无奈的是直到今天,直达珠海的航班也还在谈着,是否会有还不知道。但是还有一个办法就是从省会转,同样的高铁到省会,然后省会高铁站坐磁悬浮到机场,然后到珠海。当然普速的火车也能让我到省会,并且普速的车站离我家还挺近的,只是在省会要多坐40分钟地铁。

这一路似乎不会有什么麻烦事了。当然也确实不能算麻烦事。但是也没想象的美好、由于学校毕业证一拖再拖,尽管是第一批,但也直到六月下旬才拿到毕业证(不得不说,其实在学校还是挺好的),机票价格我是一路看着往上涨了上去,毕竟暑假到了,特价机票就是越来也少的。除了那一次,剩下国庆和春节,机票价格只有更高的。因此这个也是可以放弃的了。剩下的,也就只有高铁了。高铁从家到广州几个小时,其实是挺快的了,但是吧,这没结束啊,还得继续花一小时到珠海,这样一算半天时间就没了,这倒是也罢了。我从珠海站之后首先看到的是出租车的点,公交在后面,想想打个的吧,毕竟“打个的快得多”。可是我掏出手机一查,打的预计花费3位数,还是公交吧。珠海公交无论多远,一趟车都是一元,这里点个赞。不过该说的还是得说,这公交一座就是一个多小时,这还没完,因为这是快车,不是所有站都停的,我下车的位置离公司还有那么一段距离,我看地图上就剩下一小节了,按平时的话,走过去就行了,可是这看上去的一小段可远没有看着的那么简单,那一小段只是在前面那么长的一段的衬托下显得比较短了,实际上2千多米呢。走路得半小时。于是还是等车吧。这中间有些摩的司机问我去哪,然后他们也不会走,还说没有这个厂。如果不是通过正规校招过来的,我甚至都有点怀疑了。不过再怎么菜,地图和公交车站牌我还是会看的,最终我还是坐上了下一趟公交到了公司附近了。

下车后还有点插曲,我以为这里会跟在学校时我们去参观的工业园区一样。看到我们公司的牌子了,便想从边上的门进去然后被保安拦了下来。然后才知道这里并不是那种园区。于是又继续走,终于到了。这一趟下来白天的时间就已经过的差不多了,然后跟人事那边磕到了几句,完善了下档案等信息,便先放我去休息了。之后是签劳动合同,然后入职培训什么七七八八的。中间被空调吹到肚子疼。

接下来,我碰到第一个难关就是孤独一人。虽然有一定心理准备,但是工作不比上学。在学校,总归还是有认识的,实在不行还能回家缓缓,可是现在回家一趟来回路费1K左右,路上时间两天了,因此无论是时间还是花费都注定我不能想家就回。再者,在学校,大家都来自天南地北,班上的人都是初来乍到,年龄也差不多,慢慢互相认识。我这种内向的慢慢来就好。而上班不一样,我得融入一个已经成立的团队,并且年龄差距也大了不少,想法和目标也不一样,这样一来我便很难和他们有更多的交集。我便更是独自一人了。每当看到有些在同一个城市(一般是省会、广州、深圳)的偶尔还能去串串的,便越发感到孤独。

工作这块到还行,总体上还是挺轻松的。但是谈不上顺心。作为一个自动化专业毕业的,我却在做软件开发这块的活,并且被分配在了web前端这块。这倒是没啥难的,在高二的时候我就自学过很多相关的东西了,比如这个网站,核心部分也是高中摸鱼时候做的。虽然几乎没接触过什么框架或者第三方库,但是这些东西自己动手实现一遍感觉更加像是学习而不是搬砖,至少我自己觉得这块我基础还是不错的。事实也确实如此,虽然一开始接触vue+webpack打包的时候脑袋上满是问号,但是逐渐熟悉之后开始着手逐步查询相关功能实现原理之后就能发现这还真没什么东西。主要根源还是在于大学4年没太接触这些东西了,比如vue双向绑定最核心的就是get和set,这个其实很久以前就有了,只是兼容性差,并且我菜,所以我不知道还能这样用,但是4年过去,这个已经是个大浏览器都支持的标准了,vue的这种设计也大大减轻了开发的负担而被广泛使用了,这几年时间发生了太多事,但是当然,最基本的东西永远不会变。不过呢,公司项目不算大,所以也做起来,也没太多需要认真去想的,至少到我这里来之后就是这样了。除了最初做了几个组件之后,剩下的工作基本上就是套组件就行了。除此之外就是复制粘贴+改bug。我曾经看某微软office开发人员的微博说“每天在一堆看不懂的代码中改bug,有没有修复好也不知道”,感觉很是滑稽,可是终究有一天我也在面对同样的问题。

总之,我对我现在的工作的看法是:它既不是体力劳动又不是脑力劳动。举个例子,前段时间为了加个功能,我给一个控件传入了一个参数,然后发现并没有生效,于是我去看为啥没生效,结果发现里面表示同一个东西的变量有4个(当然因为vue不可改变输出参数的原则,所以我们一般的做法也确实会多定一个内部的变量),一会儿用的这个,一会儿又用了另外一个,这就不出问题就怪了,于是我对这些变量做了合并,你说这事吧让不会的人做吧好像也确实改不出来,让会的人做吧,也是不需要用脑子想的。但是这种事情却要占据不少的时间。总的来说,倒是确实工作不累,工资还算行吧,至少比在家乡工资会高点,并且不太需要加班,加班了也能调休,在这方面还算不错的。

但是生活上就不一样了。正如我前面所说,干的活既不是体力劳动又不是脑力劳动,每天饭还是一样的吃,特别是我这种比较坚持吃早餐的,前几天上秤称一下又长胖了,这就不是个好事情了。另外公司在金湾区,某种程度上,甚至感觉是珠海与金湾区,都不止是斗门区、香洲区与金湾区了。附近啥去处也没有,远了的时间成本我又接受不了,虽然我是有点宅,但还是怪难受的。此外珠海的空气虽好,可是上班关在办公室空调开着,窗户关着,晚上办公室的窗户更不会开,而且窗户的设计,开着也就那么回事。回到宿舍后,很可能空调继续开着,然后根本没太多机会接触外面的空气。另外宿舍环境虽然不差,但是,首先肯定比不过家里,其次,大学期间我们15级宿舍是14年修好的,再差也还行吧,自然就会有对比和不适应的地方。

至于回家,凭借在学校时的抢票经验,我还是为自己抢到了国庆和春节回家车票,但是,这可比从学校回家的票难买多了。以后是否会有这么好的机会也难说。

梦碎

尽管在来之前,来的时候我都想过是否应该出来。但是我想,至少出来看看不给自己留下遗憾,要走也不是不能走。来了之后,正巧有跟我同一天入职同部门的应届毕业生,然后我们分配在一个宿舍。他曾经跟我说过,他会走的,但是计划是在一年半以后。可是现在不到一年时间,他便离职了。尽管很高兴我能独自待着了,但是晚上睡觉时,闭上眼睛,儿时的那一幕幕又浮现在了眼前。这使我整夜无法入睡。我睡眠一直就不太好,但是渐渐的,我已经能正常入睡了。可是大学里面把我的入睡时间一再的向后拖。而这几天,我甚至似乎忘了如何入睡。

我思考着我为什么来这里,我来这里收货了啥?可是我似乎找不到答案。显然,我收货不大。论学,学到的东西甚少。如我前面所说,这既不是体力劳动也不是脑力劳动。论玩,是的,我是去看了一次海,但是更准确来说是珠江,这并没有让我感受到大海的广阔——除了几个椰子树,这和我们小城市的某湖泊差不多,当然都是一望无际,可是无论他们哪个更广阔,我能看到的都是他们消失在海天相交的尽头。我还看到了港珠澳大桥。但我也只去了一次,毕竟路上单程就要2小时了,这可没有电影中的那么惬意。

公司目前的待遇到还行,但是正如我前面所说,因为我自己的操作,谈工资的时候我自己开的低了,本指望人事那边会做做好人的,可是,还真就我说多少就是多少了。本还想着,工资能涨的。可是步入社会之后才知道这工资是按原工资按比例涨的,换句话说,工资低的涨的也满。何况转正的时候还是按我协议转正加的最低的那档算的。之后年终奖安转正一个月算的,所以也只发了一个月的,看上去如果能拿到一年的也还行了。但是我的效绩却被打的c,这可不是什么令人愉悦的事情。当然了,今年开工后工资又涨了点,总体上看着还行。但是我是否还会继续做下去呢?我不得而知。若是下半年还能涨涨工资倒是还行。不然这通货膨胀过下去,钱迟早不够用的,何况如果要在这边长期发展,房子就还是得考虑,这可是一笔不小的开支。至于年终奖倒是还行,只是希望别再是c了,哪怕是同样的钱,至少心里舒服点。虽然我得承认我没做太多事,但是也没太多我可以做的。

至于长期发展,我曾和别人聊到过广州的教育问题。我们似乎普遍认为在大城市便能获得更好的教育资源。可是事实上却并没有那么简单,大城市尽管教育资源更多更好,可是大家也都是这么想的。于是大城市中教育资源分配下来压力还是挺大的。他们初中的课程直接被砍掉了几门,考啥不考啥又教育局说了算,而我们初中阶段是不区分这些的,10门全考。于是造就了我们满分1060分的不是很懂为啥别的地方考试只有那么几百分就是满分了,反过来他们也很奇怪为什么会有一千多分的。减少几门课减少负担到不见得一定就是坏事。但是没有选择的削减这就容易产生问题了。例如广州现在这届中考是没有历史的,甚至在在初中入学这门课程就被丢到一边了,此外生物地理因为是在初二会考考完了,所以也不会带到中考,也不会重视(我们那边的做法是保留会考生物地理成绩加入中考成绩中)。这样,等高考时,他们已经没有选择了。按自己兴趣选择课程已经是无从谈起,甚至还不得不去面对自己讨厌的课程(10门全考的模式下虽然讨厌的课程也要考,但是相对来说可以靠其他课程平衡一下,并且负担大不是一个人负担大,大家都是一样的)

回忆

正如某歌曲所说,回忆越美好,却越是伤人。在现在各类所谓主课老师占各类所谓副科课时的时候,想想我小学时,尽管这类课程有被占用过,但是绝大多数时候都会正常上课,一如科学课,我认为这种课程在小学开设还是很有必要的。我所在的学校,也是非常认真的对待这门课程的。我印象中比较深的是指南针的原理,还有电池点亮小灯泡,给我们每人发个油菜花观察结构,甚至还有走出教室出去观察昆虫动物,这恐怕在很多城市里这种课程是个奢望。除了科学课,我们的音乐课也是实打实的上的,从识谱开始,当然音乐教材上是简谱,所以我们学的也是简谱,五线谱只是顺便一提,但是也算是打了基础,从音符是时值到音高,到反复标记再到渐强渐弱,甚至是换气符号。老师一般都会带个电子琴过来上课,我们也偶尔上去摸摸,虽然指法什么的都不对,但是弹个调出来还是没啥问题。竖笛这种相对便宜的更是人手一个。然后还会放一段有各种乐器的录音让我们去听去分析有哪些乐器。甚至有一次跟我们说放一段音乐让我们去把谱子写出来,当然这个只是老师自己做了个示范,然后并没有真正让我们做。而学校对这种音乐课的态度呢?跟其他学校形成鲜明反差的是我们学校在音乐老师先做一个合唱的时候,可以向班主任求助,然后几个班安排调课,然后去电教室完成的(那时候并不是每个教室都有投影和音响的,我们那种比较老的学校,只有两个电教室有这个条件,一般的教室只有个普通24寸电视,还是接的校电视台,不过说起来,曾经学校还用这个在班会课时间放《哈利波特》给我们看),并且班主任全程监督,想摸鱼划水?不可能的。相对而言美术课就比较水了,但是我们仍然做过剪纸,甚至在老师的带领下,在上课时间去公园做写生。至于体育课,我们更是没少活动过。

当然,我们市也不是每个学校都能做得这么好,我那时候那个学校算是市里软实力相当好的了,只是硬件条件差点,毕竟是老学校了,不过现在已经搬到新校区了。到了初中这个问题就开始能看出来了,音乐课上老师画的五线谱能看出问题了,甚至有人认为这种课就是用来玩的。毕竟这种东西小时候这样过来的,也没啥奇怪了。但也是因为如此,老师做了几节课之后便放弃了,开始给我们放电影看了。但是少了音乐美术,我们仍然还是有10门课的。语文、数学、英语、生物、地理、物理、化学、政治、历史和体育。是的在很多地方现在还在考虑把体育纳入中考之前,我们那早就是有体育的,并且分值100分,和其他课程一样。虽然看起来学的有点多压力会很大,但是其实不然。至少,初中是我最快乐的时光。至于中考难度,我们市设置就不是太高,虽然的确会刷掉不少人,但是刷掉的那些,你去看看也知道,确实没有啥上高中的必要了。然后是教育资源均衡的问题。我们那届倒是没啥亮点,除了严查关系户进好学校以外没有太多动作,但是之后几年,这一块改进挺大的,现在即使在一个很差的初中只要你能考到校前几也是能上个好的高中的,因为其录取方式除了全市排名录取一部分以外,还会根据学校参考的总人数给予一定的名额,从而在一定程度上消减不同学校教学质量的差距,之后录取情况会在各个学校的网站上进行公示,以接受监督。若论可惜之处就是我中考比较差的3门就是历史,英语,语文。后两科影响了我太多的东西。但是比起在一堆学校不然考的外地,我这已经很幸福了。

到了高中自然是文理分科,但是,有个学考我们也会认真准备,于是造成了我学考除了语文数学英语以外全市90分以上的成绩,可惜了,哎。当然,体育已经不再考试了,学考只是象征性的考了下体育。但是体育课还是有的,甚至在高三期间也是每周都有体育课的。只是那个体育课跟以前的没法比,我们甚至搞了两幅扑克躲到没人的实验室打起了升级。身体素质自然也是有所下降的了。此外,我们市直高中全部不接收复读生。这个我也不知道怎么说,但是我觉得这不是什么坏事。总之,高中的点点滴滴也挺美好的,但想起之时我们已经回不到过去。

儿时憧憬着未来,对分别也没啥好怕的,分别只为更好的相遇。可是如今,我们还会再相遇吗,再学校还有无限的憧憬,但是工作之后,就只剩下工作和无尽的回忆了。真心希望有一天家乡也能在经济上变强。我也能好好回家乡工作了。期待着这么一天吧。

除了已经远去的校园生活外,搬家,爷爷的离去,小学同学的模样和初中时我们一起出去玩的场景等等这些始终在我脑海中浮现。

2020年6月6日——考完开始5年之后。也是一周失眠两个晚上之后。也许有一定的负面情绪,但是写写要比憋着好,希望之后的夜里闭上眼睛不要再被回忆所伤。

分类列表更多
杂项
。。。