
[算法相关]
云来雁去
探讨技术心得,交流生活感悟,站在理性与感性的十字路口,谢谢你,在这世界的角落,找到我。
展开
-
视频是不能P的系列:当OpenCV人脸检测遇上柴犬Doge
恍惚间,2020年已接近尾声,回首过去这一年,无论是疫情、失业还是“996”,均以某种特殊的方式铭刻着这一年的记忆。也许,是这个冬天的西安雾霾更少一点。所以,有时透过中午的一抹冬阳,居然意外地觉得春天的脚步渐渐近了,甚至连圣诞节这种“洋节日”都感到亲切而且期待,我想,这大概是我丧了一段时间的缘故吧!可不管怎样,人们对未来的生活时常有一种“迷之自信”,果然生还还是要继续下去的呀!趁着最近的时间比较充裕,我决定开启一个信息的系列:视频是不能P的。这是互联网上流传的一个老梗了,正所谓“视频是不能P的,所以是真的”原创 2020-12-26 13:52:39 · 891 阅读 · 0 评论 -
一道HashSet面试题引发的蝴蝶效应
没错,我又借着“面试题”的名头来搞事情了,今天要说的是 HashSet ,而这确实是一个实际面试中遇到的问题。当时的场景大概是这样的,面试官在了解了你的知识广度以后,决心来考察一番你的基本功底,抛出了一个看起来平平无奇的问题:说一说你平时工作中都用到了哪些数据结构。你心想,这还不简单,Array、ArrayList、List、Dictionary、HashSet、Stack、Queue…等等各种集合类简直如数家珍,甚至你还能说出这些数据结构间的优劣以及各自使用的场景。可没想到,面试官话锋一转,直接来一句,“原创 2020-10-26 10:10:37 · 4785 阅读 · 0 评论 -
C#百度地图控件BMap.Net
如题,不解释下载:http://download.youkuaiyun.com/detail/qinyuanpei/6043149原创 2013-08-31 13:04:53 · 11312 阅读 · 5 评论 -
使用正则表达式抓取腾讯微博上的图片
最近突然对腾讯微博上的内容产生了兴趣,于是研究了腾讯微博的API,可是官方给的资料是在看不下去,无奈之下,找到了一个开源的类库,包括腾讯微博和新浪微博的接口,但是最令我纠结的是,这两种API无一例外地都需要在授权以后填写验证码,而这种验证码必须手动输入,无法用程序来获取,所以这条路只好放弃。怎么做呢,当然了分析源代码了,呵呵,这个不多说啦,直接上代码吧! WebCli原创 2013-04-03 20:20:23 · 2935 阅读 · 0 评论 -
小黄鸡.Net版(Simsimi.Net)
自从人人网小黄鸡火了以后,我一直在研究.net版的小黄鸡。首先感谢cubernet(http://my.youkuaiyun.com/cubernet)给出了C#版本的Simsim,作为参考,我改写出了VB.net版的Simsimi。原理很简单,网上一大堆,但是我自己弄起来问题还是很多。我自己改写的一个类文件如下:Imports System.NetImports System.IOImports原创 2013-03-03 19:11:16 · 3769 阅读 · 0 评论 -
[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘终结篇:UniLua热更新完全解读
大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.youkuaiyun.com/qinyuanpei。在之前的三篇系列文章《Unity3D游戏开发之Lua与游戏的不解之缘》中,博主带领大家一起领略了Lua在游戏开发中强大而迷人的作用,通过UniLua这个开源项目我们将Lua引入了Unity3D的世界,并且在此基础上我们写出了Lua'与Unity3D交互的第一个示例程序。今天呢,我们来说说Unity3D配合AssetBundle和;Lua实现热更新。原创 2014-10-18 23:23:00 · 10767 阅读 · 4 评论 -
[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(上)
位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我地博客地址是blog.youkuaiyun.com/qinyuanpei。如果提到游戏开发,大家一定会想到C/C++、DirectX、OpenGL等这些东西,可是众所周知,游戏行业是一个需求变化极快地行业,如果我们采用编译型的语言,那么我们可能很难跟上这个时代的步伐,因为编译型的语言每经历一次重大地更新,整个项目都需要重新编译,这样无疑会影响我们的开发效率。那么,有没有一种更为高效的游戏开发模式呢?或许答案大家已经看到了。现在在游戏界普遍采用的方式是将游戏的底层逻辑交原创 2014-10-06 13:24:39 · 15395 阅读 · 7 评论 -
[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(中)
大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.youkuaiyun.com/qinyuanpei。在前一篇文章《Unity3D游戏开发之Lua与游戏的不解之缘(上)》中,博主带领大家初步探索了Lua语言与游戏开发领域之间的紧密联系,今天让我们来继续将Lua语言进行到底吧!通过前面的学习,我们知道设计Lua语言的目的是为了将Lua嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua语言本身没有像其它语言提供丰富的类库,因此Lua语言必须依赖于其它语言来完成功能上的扩展(可是正是在功能上牺牲原创 2014-10-10 17:20:29 · 12505 阅读 · 8 评论 -
使用Love2D引擎开发贪吃蛇游戏
今天来介绍博主最近捣腾的一个小游戏[贪吃蛇],贪吃蛇这个游戏相信大家都不会感到陌生吧。今天博主将通过Love2D这款游戏引擎来为大家实现一个简单的贪吃蛇游戏,在本篇文章当中我们将会涉及到贪吃蛇的基本算法、Lua语言编程等基本的内容,希望能够对大家开发类似的游戏提供借鉴和思考,文章中如有不足之处,还希望大家能够谅解,因为博主的游戏开发基本就是这样慢慢摸索着学习,所以难免会有不足的地方。原创 2015-03-15 19:19:10 · 4818 阅读 · 1 评论 -
Unity3D游戏开发之在uGUI中使用不规则精灵制作按钮
各位朋友大家好,欢迎关注我的博客,我的博客地址是http://www.qinyuanpei.com。最近因为受到工作上业务因素影响,所以博主在Unity引擎上的研究有所停滞。虽然目前的工作内容和Unity3D没有直接的关联,可是我觉得工程师应该有这样一种情怀,即工作和兴趣是完全不同的两个概念。编程对我而言,首先是一种兴趣,其次是一份工作。所以我宁愿在每天下班以后继续研究自己感兴趣的东西,而非为了取悦原创 2016-07-09 21:18:08 · 16538 阅读 · 9 评论 -
一个关于概率的问题的思考
最近需要给公司内部编写一个随机生成人员名单的小工具,在解决这个问题的过程中,我认识到这是一个概率相关的问题,即使在过去我曾经设计过类似转盘抽奖这样的应用程序,可我并不认为我真正搞清楚了这个问题,所以想在这篇文章中说说我对概率问题的相关思考。首先,我们来考虑这个问题的背景,我们需要定期在内部举行英语交流活动,可是大家的英语水差异悬殊,所以如果按照常规的思路来解决这个问题,即认为每个人被选中的概率是相等原创 2016-10-19 00:00:46 · 3488 阅读 · 1 评论 -
罗马数字与阿拉伯数字的相互转换
最近遇到一道非常有趣的题目,题目大意如下:有一个富翁在银河系里做生意,而银河系使用的是罗马数字,所以他需要一个精明能干的助手,帮助他完成罗马数字与阿拉伯数字的相互转换,题目在这个背景下衍生出交易场景,我们需要帮助他计算出相关商品的价格。对于这道题目,如果剥离开这个题目本身的交易场景,这道题目本质上就是一个纯粹的算法问题。说来惭愧,博主当时并未能快速地解决这个问题,事后通过研读别人的文章始能有所...原创 2018-05-02 09:27:22 · 12141 阅读 · 3 评论 -
设计模式之原型模式
/// /// 目的:学习原型模式 /// 日期:2013年11月20日 /// 作者:秦元培 /// 摘要: /// 原型模式(PrototypePattern):通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个原型对象的办法创建出更多的同类型对象。 /// 在C#里面,我们可以很容易的通过Clone()方法实现原型模式。任何类,只要原创 2013-11-20 18:51:27 · 2431 阅读 · 1 评论 -
开源聊天机器人程序QRobot(QuickRobot)
之前写的,本来打算写成开源类库的,可是用C#移植的时候发现了很大的问题,主要是当机器人回答时执行效率太慢,而我又没有什么好的改进方法,所以我决定将此程序代码全部公开,完整代码下载请前往:VB.NET版:http://download.youkuaiyun.com/detail/qinyuanpei/5561585C#移植版(未完成):http://download.youkuaiyun.com/detail/qi原创 2013-06-11 10:27:25 · 5080 阅读 · 0 评论 -
C#基于Linq和反射实现数据持久化框架Xml4DB
我们知道目前大部分的数据库都是关系型数据库, 所谓关系型数据库,就是指建立在关系模型 基础之上的数据库系统,如Oracle、SQL Server、Access、MySQL等。关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。一个偶然的机会我接触到了DB4O,它是一个完全面向对象的开源数据库,它的出现完全颠覆了传统的数据库在人们心中的形象,因为传统的数据库需要在数据体、实体之间转换,而且需要映射文件提供映射关系。原创 2014-03-02 07:57:32 · 4176 阅读 · 0 评论 -
设计模式之建造者模式
/// /// 目的:学习建造者模型 /// 日期:2013年11月20日 /// 作者:秦元培 /// 摘要: /// 下面描述的是建造者模式,建造者模式共有四种角色,分别是: /// 建造者角色、具体建造者角色、指导者角色、产品角色 /// 建造者(Builder)角色:给出一个抽象接口,以规范产品对象的各个组成成分的建造。一般而言,此原创 2013-11-20 18:47:30 · 2168 阅读 · 1 评论 -
设计模式之抽象工厂模式
继续沿着前一篇文章的思路,我们在工厂方法模式中提到:为了增加新产品同时避免对整个系统产生影响,我们提出了将工厂类抽象化的方法。那么,现在让我们来思考这样一个问题,如果我们继续将产品抽象会怎么样呢?这就是我们今天要学习的抽象工厂模式。 抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式包括四种角色,抽象工厂角色、具体工厂角色、抽象产品角色、具体产原创 2013-11-18 23:08:32 · 2483 阅读 · 0 评论 -
设计模式之单例模式
好了,介绍了工厂模式,我们再来学习一个新的设计模式:单例模式。单例模式是运用最为广泛的一种设计模式。那么什么是单例模式呢?简单来说,单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。原创 2013-11-17 15:01:52 · 2444 阅读 · 0 评论 -
设计模式之工厂方法模式
在上一篇文章中,我们学习了第一个设计模式:简单工厂模式。通过这个模式,我们可以生产出不同的产品。在这个模式中,我们知道最终在客户端起作用的,其实是工厂类,即工厂类决定了我们能够生产那些产品。 一旦我们需要增加新的产品种类,就必须去修改工厂类,这样是不利于系统的稳定的。我们在设计中提倡将抽象层作为一个公共父类或者接口,然后将具体层作为抽象层的一个子类,换言之,由具体层来继承抽象层实现特定的功能。那么原创 2013-11-17 01:06:15 · 2396 阅读 · 0 评论 -
设计模式之简单工厂模式
博客沉寂了一段时间,主要是这段时间在玩古剑2,现在游戏即将通关,我想是时候开始学习新东西了。 今天给大家带来的是设计模式中简单工厂模式。 从设计模式的类型上来说,简单工厂模式是属于创建型模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的原创 2013-11-16 14:12:24 · 2652 阅读 · 0 评论 -
[Unity3D]Unity3D游戏开发之从《魂斗罗》游戏说起(上)——目标追踪
各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.youkuaiyun.com/qinyuanpei。 首先博主要自我反省,过了这么久才来更新博客,这段时间主要是在忙着写期末的作业,所以博主基本上没有空闲时间来研究技术,希望大家谅解啊。有时候,博主会不由自主地想,如果当初选择了计算机专业,此时此刻,我可能会有更多的时间来和大家分享我在学习过程中的感悟吧。好了,闲话有空再叙原创 2014-06-10 23:03:22 · 10546 阅读 · 4 评论 -
C#开源音乐播放器MetroPlayer3.0发布
MetroPlayer3.0程序文档 一、说明MetroPlayer3.0是在MetroMusic1.05及2.0版本的基础之上,进行重构和改进的软件产品。从3.0开始,本软件正式更名为MetroPlayer。MetroPlayer注重良好的用户体验,努力打造适合小众音乐爱好者喜欢的音乐播放器,MetroPlayer主张简洁、实用的设计,MetroPlayer为兴趣而生,注定它将有别于市原创 2013-08-31 12:55:21 · 5844 阅读 · 2 评论 -
MetroMusic音乐播放器开发心得
MetroMusic音乐播放器开发心得 在这个假期,我独立开发了自己的音乐播放器MetroMusic,之所以叫做MetroMusic,是因为这个播放器的界面采用目前最为流行的win8Metro风格。这个项目起初是为了学习winform的界面设计,比如自定义界面、换肤等功能,后来这个项目越走越远,变成了一个不折不扣的播放器了。项目名称:MetroMusic项目类型:WinForm播放原创 2013-03-03 18:18:43 · 4273 阅读 · 3 评论 -
编程之美之中国象棋问题
一、题目原型 下过中国象棋的朋友都知道,双方的“将”和“帅”相隔遥远,并且它们不能照面。在象棋残局中,许多高手能利用这一规则走出精妙的杀招。假设棋盘上只有“将”和“帅”二子(如图 1-3所示)为了下面叙述方便,我们约定用 A表示“将”,B表示“帅”,那么A和B的运动将被限制在己方的3X3的格子中,A、B可以横向或者纵向移动一格,但是不能沿对角线移动。当A、B处于一条直线上时,棋局结原创 2013-10-24 12:36:33 · 3214 阅读 · 0 评论