自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(535)
  • 资源 (7)
  • 收藏
  • 关注

原创 vue+webpack实现精美游戏设计:实现建筑物的渐变生成效果

像星际一样实现建筑物的渐变生成特效

2017-12-12 16:12:56 3144 1

原创 VUE+WebPack游戏设计:用CSS实现扑克牌翻转特效

用css实现扑克牌的翻转动画效果

2017-07-17 17:45:18 4844 1

原创 编译原理动手实操之一个输入系统的实现

大家好,欢迎大家来到coding迪斯尼,愿天下没有难学的知识阅读博客的朋友可以到我的网易云课堂中,通过视频的方式查看代码的调试和执行过程: http://study.163.com/course/courseMain.htm?courseId=1002830012这篇文章是我课程中的系列讲稿,也是编译原理动手实操系列的文章。在我们南方有一句老话叫:无

2016-03-16 10:02:54 4169 5

原创 输入及词法分析详解

欢迎大家来到coding迪斯尼,我的愿景是:让天下没有难学的知识 这句话是跟马云学的,就算没马云的命,那就用马云的话,也是不错的。阅读博客的朋友可以到我的网易云课堂中,通过视频的方式查看代码的调试和执行过程: http://study.163.com/course/courseMain.htm?courseId=1002830012 大家好,继上几节我们通过实现一个简易编译

2016-03-08 12:08:29 3876 1

原创 编译原理动手实操,用java实现一个简易编译器-语法解析

语法和解析树:举个例子看看,语法解析的过程。句子:“我看到刘德华唱歌”。在计算机里,怎么用程序解析它呢。从语法上看,句子的组成是由主语,动词,和谓语从句组成,主语是“我”,动词是“看见”, 谓语从句是”刘德华唱歌“。因此一个句子可以分解成 主语 + 动词 + 谓语从句:句子-->主语+动词 + 谓语从句 主语是名词,因此有 :主语->名词句子里的

2016-02-21 18:03:43 13342 7

原创 利用DSF深度优先搜索来解容器倒水问题

在一些面试算法或智力题中,时不时会遇到容器倒水的问题,例如,有三个容器,分别是10升,7升,4升,7升和4升的容器装满了水,10升容器是空的,如果将容器a中的水倒入容器b时,必须使得a中的水全部倒完,或者b被倒满,问有没有一种倒水序列,使得7升容器或4升容器中只有2升的水。这个问题怎么会跟图论的深度优先搜索联系起来呢。如果我们把三个容器的水量和容量状态当作一个点,例如初始时刻[10(e

2015-12-07 21:27:36 2457 1

原创 一个在线显示doc文本的实例

最近带着一对攻城狮给客户做一个web平台系统,在与客户做需求分析的过程中,发现客户有个需求痛点,那就是希望能在web上直接浏览doc文本的内容。原来的老平台在显示doc文本时,有很多问题,例如原有doc文本排版格式显示错误,例如表格位置发生了偏移,字体不再是原有doc里的字体等等。如果新系统能解决客户这一痛点,想必我们技术团队的实力会得到客户进一步的肯定。我做过调查,发现在线显示doc

2015-11-24 15:20:00 3489 1

原创 一个android文本比对app的实现(二)--界面

本篇对该app的界面实现做一些说明。谷歌对android app 的界面开发提供了精巧的设计,其界面设计的布局技术(layout), 运用了类似于设计模式的composite pattern, 具体来说,就像俄罗斯娃娃,外面一个大娃娃可以套一个小娃娃。android 的layout 里面可以再嵌入其他layout, 层层递进,进而形成变化多样而又非常灵活的界面布局。

2015-11-17 15:36:42 1298

原创 一个android 文本比对App的实现(一)

做c++开发很多年了,从早年windows vc6.0 做客户端程序开发,这些年后台流媒体服务器后台开发。随着时代变迁,移动互联逐渐兴起,直到现在,移动互联的风头早已盖过传统互联网应用,因而传统后台开发似乎日渐式微。如今要找工作的话,android,IOS等开发的职位不但数量远远多于c++,而且报酬也要比c++高很多,如果在移动开发上做过三年以上,年薪25W以上的机会多的是,但是对于c++ 要达到

2015-11-13 17:05:27 3505

原创 一道看似简单的面试算法题所隐藏的潜在意图

大家面试历程中有没有经历过类似情况,面试官给出一道算法题,看似不难,你三下五除二搞定了,时间和空间效率都是最优,你乐呵呵以为offer,已经到手,结果左等右等,望穿秋水,面试的结果却是无疾而终,你反复确认,觉得题做得没错啊,为什么会失败呢。我就有过类似的情况,后来反复思考,才明白,其实我没明白简单的表面其实隐藏着潜在的考察点。举个栗子,一道常用的面试算法题是:给你一个链表,让你将链表反转。

2015-11-11 17:45:51 1446

原创 运用面向对象的分析与设计模式巧解面试算法题

IT行业,千变万化,日新月异,身处其中的各位同仁必感同身受,特别是对从事技术开发的朋友们而言,或许能感觉到唯一不变的就是变化。对纷繁复杂的程序人生而言,其实有一个看不见的主旋律,那就是找工作,找房子,找人(另一半)。如果你是心怀梦想,浪迹于上广北深的千万大军中的一员的话,我想这一句话该是你生活的写照了。在三找中,找工作是其他两找的基础,本系列文章主要是就找工作展开而言。对开发而言,面试

2015-02-09 17:06:40 1288

原创 自己动手写数据库:实现基于静态哈希的索引

数据库设计中有一项至关重要的技术难点,那就是给定特定条件进行查询时,我们需要保证速度尽可能快。假设我们有一个 STUDENT 表,表中包含学生名字,年龄,专业等字段,当我们要查询给定年龄数值的记录,如果我们能把所有记录以年龄字段排序,那么通过二分查找,我们就能快速定位满足条件的记录。如果表中包含N=1,000,000 条记录,通过二分查找就能通过大概 logN = 20 次即可,但是要遍历所有记录...

2024-04-02 16:42:13 626

原创 自己动手写数据库:基于哈希的静态索引设计

本文描述了数据库系统中如何通过哈希运算来设计索引机制从而加快数据的检索速度,同时本文也给出了代码实现

2024-04-02 16:37:29 646

原创 自己动手写编译器:使用 PDA 实现增强和属性语法的解析

本文描述了如何使用堆栈的方式实现语法解析

2024-02-19 22:51:12 1231 1

原创 自己动手写编译器:属性语法极其实现

上一节我们研究了增强语法,本节我们看看何为属性语法。属性语法实则是在语法规则上附带上一些重要的解析信息,随着语法解析的进行,我们可以利用附带的解析信息去进行一系列操作,例如利用解析信息实现代码生成。我们先看属性语法的一个实例:NUMBER("156", 156)NUMBER 是语法解析中的终结符,他附带有两个属性,一个是该标签对应字符串的内容“156”,另一个是他对应的数值也就是 156,如果符号...

2024-02-04 14:01:22 383

原创 自己动手写编译器:属性语法的实现

本文介绍了编译原理中,属性语法的原理和实现

2024-02-04 13:58:12 475

原创 自己动手写编译器:增强语法极其实现

本文描述了增强语法的特点并给出了代码实现

2024-02-01 16:33:46 291

原创 自己动手写编译器:增强语法极其实现

我们前面章节看到的语法规则中,语法只给出了代码字符串组合规则是否符合规定,实际上我们可以在语法解析过程中增加一些特定的属性或者操作,使得语法解析流程中就能完成中间代码生成,或者是创建好特定的元信息,以便在后续处理流程中辅助代码生成。例如我们看看如何在语法解析规则中附加特定操作,使得语法解析过程就能生成中间代码,我们看一个例子,给定如下语法规则:expr_prime -> + term {op...

2024-01-29 10:00:16 270

原创 python 实现大语言模型中的概率论:两人轮流出手对决时取胜概率的推导

本文介绍大语言模型概率论中有关双人博弈的理论推导

2024-01-20 14:08:35 909

原创 自己动手做数据库系统:解释执行 update 和 delete 对应的 sql 语句

在上一节我们完成了 select 语句的解释执行,本节我们看看 Update 和 Delete 对应的语句如何解释执行,当然他们的实现原理跟我们前面实现的 select 语句执行大同小异。无论是 update还是 delete 都是对数据表的修改,因此他们的实现方法基本相同。假设我们要执行如下 sql 语句:update STUDENT set MajorId=20 where MajorId=3...

2024-01-19 12:20:17 665

原创 自己动手写数据库系统:解释执行 update 和 delete 对应的 sql 语句

本问给出了如何实现 sql 语句中有关 insert, update, delete 等三个修改语句的解释与执行

2024-01-19 12:17:21 406

原创 自己动手写编译器:自顶向下的自动状态机

本文介绍了用于实现自顶向下进行语法解析的数据结构:PDA

2024-01-12 16:13:00 928

原创 自己动手写编译器:算术表达式的语法分析实例和代码实现

本文给出算术表达式的语法设计和推导过程,同时也给出相应代码实现

2023-12-28 13:24:19 1011

原创 自己动手做 chatgpt:seq2seq翻译模型中GRU模块的原理和数据预处理

本文给出了自然语言处理早期用于做机器翻译的 seq2seq 模型中 GRU 模块的原理,以及给出数据预处理的步骤

2023-12-24 20:48:58 632

原创 自己动手写编译器:语法解析的基本原理

这里还需要注意的是,箭头右边一系列概念的顺序很重要,顺序是语法规则的组成部分,例如合乎逻辑的“人头”必须满足鼻子在眼睛后面,如果这个顺序颠倒了,那么这个“头”就不是人头,而是异形的头。本节描述的东西比较抽象,它很可能给你带来更多的是困惑,好在在最开始和前面做词法解析时,我们都接触过语法解析,所以前面的练习应该会有助于我们对这些理论的理解,在后面章节中,我们会拿几个较为简单的语法解析做练手,通过实践才能更好的帮我们理解和掌握抽象的理论,更多内容请在 b 站搜索 Coding 迪斯尼。

2023-12-19 22:49:23 112

原创 python 实现 AIGC 大模型中的概率论:充满数学逼格的生日问题公式推导

在前两节中,我们推导了生日问题的求解算法,但在数学上的最终目标就是希望能针对问题推导出一个简洁漂亮的公式,就像爱因斯坦著名的质能方程 E = MC^2 那样,毕竟数学是以符号逻辑来看待世界本质的语言,所以絮絮叨叨不是数学,一个掷地有声的符号公式才是数学的范儿。这里我们需要一些微积分的内容。首先在前面章节中我们推导出 n 个人没有两个人拥有相同生日的概率是:在数学上看到多个数相乘时,第一个处理方法就...

2023-12-18 14:00:03 88

原创 python 实现 AIGC 大模型中的概率论:生日问题的公式推导

本文给出了生日问题的公式推导,充分显示处数学在算法设计特别是深度学习上所展现的逼格

2023-12-18 13:56:16 232

原创 自己动手写数据库:解析 select 语句并生成查询树

首先我们需要给原来代码打个补丁,在SelectScan 结构体初始化时需要传入 UpdateScan 接口对象,但很多时候我们需要传入的是 Scan 对象,因此我们需要做一个转换,也就是当初始化 SelectScan 时,如果传入的是 Scan 对象,那么我们就将其封装成 UpdateScan 接口对象,因此在 query 目录下增加一个名为 updatescan_wrapper.go 的文件,在...

2023-12-15 10:00:15 86

原创 自己动手写数据库: select 查询语句对应查询树的构造和执行

本文给出了如何解析 select sql 语句并构造查询树,然后执行语句并获得执行结果

2023-12-14 22:31:58 231

原创 自己动手做编译器:实现 c 语言的词法解析

对编译器设计和开发而言,表明你能有效入门的证明就是你能做出一个针对 C 语言的编译器。完成了 C 语言编译器,你在编译原理领域里算是写出了第一个 hello world 程序。于是为了确认我们开发的 GoLex 功能完善,我们看看它是否能对 C 语言的语法有准确的解。首先我们修改一处正则表达式解析的 bug,在 RegParser.go 中的term 函数做如下修改:...else { ...

2023-12-12 18:01:20 123

原创 自己动手写编译器:使用 GoLex 实现 c 语言的词法解析

本文介绍了如何实现 针对 c 语言的词法解析,特别是识别关键字和变量名

2023-12-12 17:58:05 98

原创 python 实现 AIGC 大模型中的概率论:生日问题的基本推导

本文给出了概率论中生日问题的基本算法推导

2023-12-05 12:07:20 353

原创 python 实现 AIGC 大语言模型中的概率论:生日相同问题的代码场景模拟

概率论和数理统计是 AGC 大语言模型算法的理论基石之一,本系列文章希望通过代码的方式,以工程师的角度来研究概率论

2023-12-01 17:32:24 134

原创 自己动手写 chatgpt: Attention 机制的原理与实现

chatGPT 等大模型能成功有赖于 attention 算法机制,本文着重描述和实现该机制的算法原理

2023-11-29 13:30:12 562

原创 自己动手写编译器:golex 和 flex 比较研究 2

本文给出了 gcc 编译器专用语法解析器 flex 如何实现动态添加单词的符号表功能,然后在 GoLex 上也同等实现相应功能

2023-11-27 22:43:05 92

原创 自己动手写编译器:实现编译器工具链中的词法解析工具 Flex

本文给出了如何使用 golang 实现编译器工具链中的词法解析公交 Flex

2023-11-15 13:50:52 124

原创 自己动手写编译器:创建由 C 语言编译而成的语法解析器

手动完成 CFlex 程序,实现编译后的词法解析器

2023-11-05 13:55:32 439

原创 自己动手写编译器:c 语言模板中的输入模块设计

本文给出了编译器设计工具中词法解析器 Lex对应输入系统的 c 语言设计

2023-10-21 11:39:43 283

原创 自己动手写编译器:实现命令行模块

本文给出了 GoLex 词法解析器程序实现中的命令行模块实现

2023-10-01 16:16:40 240

原创 自己动手写数据库:规划器(Planner)的实现

本文给出了数据库系统中,规划器模块的基本实现

2023-09-25 12:59:04 181

一个java实现的简易编译器

这是一个用java实现的简易的编译器,他能将一个具有加法和乘法的算术表达式编译成类汇编语言,这是我博文对应的代码,具体请参看我的博文: http://blog.csdn.net/tyler_download/article/details/50668983 例如输入 1+2*3+4; end end是必须的,表示输入结束,然后程序输出: t0 = 1 t1 = 2 t2 = 3 t1 *= t2 t0 += t1 t1 = 4 t0 += t1

2016-02-18

一个android 文本比对app的实现代码

这是一个android版的beyond comparer, 它的功能是找出两个文本的最大共同子串,其算法思想是LCS, 但我利用Hirschberg 的动态规划算法将存储复杂度由O(n^2)改为O(n), 具体详情请参看我的博文: http://blog.csdn.net/tyler_download/article/details/49820515

2015-11-16

Learning AndEngine

AndEngine 是android开放的经典引擎,它能提供的框架能极大的提高android平台上的游戏开发质量和效率,当然,到现在它已经老了,引擎源代码有两年未更新,但国内有不少开源的游戏引擎,例如OGEngine都是基于AndEngine的,而且OGEngine文档做的很差,要想有效的运用OGEngine,学校AndEngine看似必不可少,这里将描写AndEngine最好的开发书籍共享,但愿起到抛砖引玉的作用

2015-03-26

Information Retrieval: Implementing and Evaluating Search Engines

这是一本讲诉搜索开发技术的书,在亚马逊上评分为五星。众所周知,搜索引擎很多技术都很成熟了,但其实践的成本很高,因此,很多相关书籍讲解的大多是概念,而计算机科学的内核是实践,没法动手做的东西,意义都不大。本书特点在于它基于一个信息检索的开源系统Wumpus,使得理论和实践能够结合起来,这或许是它在亚马逊有五星的原因吧,希望有志于信息检索的各位同仁能充书里获得应有的收获

2015-02-10

Android 4.4 App Development Essential

亚马逊上五星级的android开发入门书,它将android开发的概念,流程娓娓道来,详细讲解了开发环境的搭建,调试,并逐步讲解开发的各个知识点,并提供动手实践的实例和程序,极大地降低了学习曲线,是想进入android移动开发的绝佳入门资料

2014-11-21

NUnit Pocket Reference

该书介绍了.net c# 最成熟和流行的单元测试框架NUnit的技术,微软内部也在用该工具做单元测试,任何想提高代码质量或想转入TDD开发的.net c# 工程师都值得一读,该书在亚马逊上有4.5星,以下是英文介绍: Few .NET developers have the luxury of unlimited code testing once their application is complete, and rushing through the testing process is both problematic and stressful. The open source NUnit framework provides an excellent and efficient way to test and improve .NET code as it's written, saving hundreds of QA hours and headaches.NUnit is one of the most mature and widely-used .NET open source projects even Microsoft uses it internally. NUnit is a unit-testing framework for all .Net languages. Written entirely in C#, NUnit takes advantage of many .NET language features, such as custom attributes and other reflection related capabilities. It automates unit testing and reduces the effort required to frequently test code while developing it. NUint is invaluable for .NET developers in test-driven development under agile methodologies such as Extreme Programming (XP) as well as for developers who use for unit testing for software quality assurance. Unfortunately, some of those valuable hours saved by using NUnit can be wasted trying to master this powerful but under-documented frameworkProof that good things come in small packages, the NUnit Pocket Reference is a complete reference to NUnit, filling in the blanks left by the existing documentation and online discussion. It offers developers everything they need to know to install, configure, and use NUnit; the NUnit user interface; and a reference to the NUnit framework classes in a slim but well-organized package. This handy little book even offers practical, real world NUnit examples. And with the NUnit Pocket Reference, IT managers will know to expect when they implement unit testing in their projects. It is the only book you'll need on this popular and practical new open source framework.

2014-10-29

C# Design Pattern Essentials mobi

一本通过c#描述设计模式的书,书中通过代码一步一步引导你理解学习各种设计模式,通过代码实践增强各种设计模式的了解。原有经典的四人帮设计模式书 design pattern elements of reusable oriented software 大多是理论而缺乏实践,该书是对四人帮的书的良好补充

2014-10-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除