手机后面播音的地方,类似磁铁的很多小碎片小燕子从窝里掉下来来

当前位置: &
共有4702款游戏供您选择&&&&
休闲益智60.3MB
休闲益智51.6MB
动作冒险30.6MB
飞行射击7.28MB
小游戏18.5MB
休闲益智5.69MB
策略经营80.9MB
休闲益智92MB
赛车竞技91MB
休闲益智84.8MB
棋牌游戏13.8MB
休闲益智44.1MB
飞行射击22.8MB
赛车竞技30.7MB
休闲益智18.3MB
休闲益智46.3MB
休闲益智4.1MB
休闲益智43.3MB
飞行射击19.1MB
休闲益智235MB
动作冒险76.3MB
休闲益智59.6MB
休闲益智5MB
休闲益智10.18MB
休闲益智48.3MB
休闲益智25.23MB
休闲益智7.92MB
休闲益智9.9MB
休闲益智14.3MB
休闲益智13.4MB
休闲益智12.5MB
休闲益智10.4MB
休闲益智30.4MB
赛车竞技37MB
棋牌游戏18.35MB
休闲益智115MB
休闲益智35.6MB
休闲益智101MB
休闲益智53.8MB
休闲益智48.4MB用py3写爬虫的话,强力推荐这本书,应该是目前最系统最完善介绍python爬虫的书。可以去图灵社区买电子版。书的内容很新也很系统,从beautifulSoup,requests到ajax,图像识别,单元测试。比起绝大多数blog零散的教程要好的多,看完书后就可以去做些实战项目,这个时候可以去github上找类似的项目借鉴下。&br&&br&英文版pdf:&a href=&/?target=http%3A///s/1pJxJi2Z& class=&internal&&/s/1pJxJi2Z&/a& (个人觉得英文版更好,彩色的pdf)&br&中文版pdf: &a href=&/?target=http%3A//.cn/book/1709& class=&internal&&图灵社区 : 图书
: Python网络数据采集&/a& (支持正版) &br&-------------&br&更新:有评论说这本书内容比较浅,我表示赞同。但是对于新手来说,看完这本书,对于爬虫基础的应用与概念绝对有了初步的了解。其实国内有一本讲爬虫的好书,《自己动手写网络爬虫》,这本书除了介绍爬虫基本原理,包括优先级,宽度优先搜索,分布式爬虫,多线程,还有云计算,数据挖掘内容。只不过用了java来实现,但是思路是相同的。&br&&br&&img src=&/9e35b9735d64dbaa4e04_b.png& data-rawwidth=&1000& data-rawheight=&1778& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&/9e35b9735d64dbaa4e04_r.png&&&img src=&/febaecdaa3c6074edf18422_b.png& data-rawwidth=&1000& data-rawheight=&1778& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&/febaecdaa3c6074edf18422_r.png&&&img src=&/8c222fafb62246bad0d25a19_b.png& data-rawwidth=&1000& data-rawheight=&1778& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&/8c222fafb62246bad0d25a19_r.png&&&img src=&/540a7bcf89ae6aaffadf97_b.png& data-rawwidth=&1000& data-rawheight=&1778& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&/540a7bcf89ae6aaffadf97_r.png&&
用py3写爬虫的话,强力推荐这本书,应该是目前最系统最完善介绍python爬虫的书。可以去图灵社区买电子版。书的内容很新也很系统,从beautifulSoup,requests到ajax,图像识别,单元测试。比起绝大多数blog零散的教程要好的多,看完书后就可以去做些实战项目…
先列一些各方面的著名游戏相关的开源项目。&br&&br&商业游戏&br&&ul&&li&&a href=&///?target=https%3A///id-Software& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&id Software · GitHub&i class=&icon-external&&&/i&&/a&:历来各个游戏的完整代码&br&&/li&&li&Unreal Tournament :用开源方式开发&/li&&/ul&&br&游戏引擎/框架&br&&ul&&li&&a href=&///?target=https%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Unreal Engine 4&i class=&icon-external&&&/i&&/a&:&a href=&///?target=https%3A///blog/ue4-is-free& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&If You Love Something, Set It Free&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=https%3A///cocos2d/cocos2d-x& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&cocos2d/cocos2d-x · GitHub&i class=&icon-external&&&/i&&/a&(&a data-hash=&e06ff9745abe4d21b55c58& href=&///people/e06ff9745abe4d21b55c58& class=&member_mention& data-editable=&true& data-title=&@王哲& data-tip=&p$b$e06ff9745abe4d21b55c58&&@王哲&/a&):长期占领GitHub C++的Trending榜。&/li&&li&&a href=&///?target=https%3A///cloudwu/skynet& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&cloudwu/skynet · GitHub&i class=&icon-external&&&/i&&/a& (云风)&br&&/li&&/ul&&br&渲染引擎&br&&ul&&li&&a href=&///?target=http%3A//www.klayge.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&KlayGE游戏引擎&i class=&icon-external&&&/i&&/a&(&a data-hash=&0b21747b1fec79ad8af7e68a2b1ff681& href=&///people/0b21747b1fec79ad8af7e68a2b1ff681& class=&member_mention& data-editable=&true& data-title=&@龚敏敏& data-tip=&p$b$0b21747b1fec79ad8af7e68a2b1ff681&&@龚敏敏&/a&)&br&&/li&&li&&a href=&///?target=http%3A//www.ogre3d.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&OGRE – Open Source 3D Graphics Engine&i class=&icon-external&&&/i&&/a&&/li&&/ul&&br&物理引擎&br&&ul&&li&&a href=&///?target=http%3A//box2d.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Box2D | A 2D Physics Engine for Games&i class=&icon-external&&&/i&&/a&:Blizzard 的程序员的个人项目&/li&&li&&a href=&///?target=https%3A///bulletphysics/bullet3& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&bulletphysics/bullet3 · GitHub&i class=&icon-external&&&/i&&/a&:作者曾是Havok、Sony、AMD和现在Google的程序员。&br&&/li&&li&&a href=&///?target=https%3A///physx-source-github& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&PhysX Source on GitHub&i class=&icon-external&&&/i&&/a&&/li&&/ul&&br&其他&br&&ul&&li&&a href=&///?target=https%3A///paulhodge/EASTL& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&paulhodge/EASTL · GitHub&i class=&icon-external&&&/i&&/a&&br&&/li&&/ul&&br&我司的游戏部门近半年也在策划把一些公共组件开源,现时有我负责的 &a href=&///?target=https%3A///miloyip/rapidjson& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&miloyip/rapidjson · GitHub&i class=&icon-external&&&/i&&/a&(算是protobuf那个类别),另一个是同组同事的 &a href=&///?target=https%3A///TencentOpen/behaviac& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&TencentOpen/behaviac · GitHub&i class=&icon-external&&&/i&&/a& 行为树组件(就是题主说没有的AI组件)。现在还有一些组件在准备中。但其实要把内部项目开源,需要做很多工作,而且还有之后的维护、更新工作。&br&&br&像游戏引擎这么大型的软件项目,开源所需的成本是具大的。以Cocos2D-x来说,单是要管理上万个pull requests,也是让人敬佩。对于像UE4这种近二百万行代码级别的高端引擎,维护的成本就更大更复杂。&br&&br&撇开游戏引擎这种巨物,物理、动画、人工智能等模块算是更独立一些,较容易整合到不同的游戏中。另一种是插件,例如在GitHub上开源的Unity组件就有很多。&br&&br&其实游戏开发相关的开源很多,历史很久,我估计单单引擎就有上百个。问题是,能做出商业品质游戏的引擎不是很多。一些游戏开发公司,例如id Software,他们开源的目的并不是希望通过社区而提升引擎的品质,或是带来什么商业利益,而仅仅是在于一种分享,供他人学习。&br&&br&----&br&补充一点,传统上Web都是通过社区方式建立标准(如IETF RFC),然后也有开源的服务器和浏览器。然而,游戏开发从来没有什么标准,甚至连文件格式的标准化也不太成功(如Collada)。原因可能是各种游戏本身的需求差异很大,以前曾有人想标准化引擎各部分的接口,来做到能灵活替换各组件,但都没成功。这些问题有可能阻碍开源发展,&br&&br&当然,也许最简单的答案是,游戏业界对开源的确做得不好,我们要继续努力。
先列一些各方面的著名游戏相关的开源项目。商业游戏:历来各个游戏的完整代码Unreal Tournament :用开源方式开发游戏引擎/框架:():长期占领…
&a data-hash=&d073f194bcabc1cec5ef69d0b534de99& href=&///people/d073f194bcabc1cec5ef69d0b534de99& class=&member_mention& data-editable=&true& data-title=&@空明流转& data-tip=&p$b$d073f194bcabc1cec5ef69d0b534de99&&@空明流转&/a& 开发过高大上的SALVIA, &a data-hash=&661caec93ce39338cd42& href=&///people/661caec93ce39338cd42& class=&member_mention& data-editable=&true& data-title=&@Yong He& data-tip=&p$b$661caec93ce39338cd42&&@Yong He&/a&则提到了Larrabee。我来提供另一些观点。&br&&br&首先,如果从学习角度出发,不必一开始完全根据现时GPU的架构及概念,来用软件复制一遍。现时的GPU主要是基于三角形光栅化及z-buffer。&br&&br&如果我们从图形学的历史进程来学习,可以这样做练习:&br&&br&2D部分:&br&&ol&&li&光栅化2D点(就是在二维数组上画点,了解色彩基本原理,并解决影像输出问题)&/li&&li&光栅化2D直线(&a href=&///?target=http%3A//zh.wikipedia.org/wiki/%25E5%25B8%%259B%25B7%25E6%25A3%25AE%25E6%25BC%25A2%25E5%25A7%%259B%25B4%25E7%25B7%259A%25E6%25BC%%25AE%%25B3%2595& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&布雷森漢姆直線演算法&i class=&icon-external&&&/i&&/a&、&a href=&///?target=http%3A//zh.wikipedia.org/wiki/%25E5%%25E5%25B0%258F%25E6%259E%%259B%25B4%25E7%25BA%25BF%25E7%25AE%%25B3%2595& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&吴小林直线算法&i class=&icon-external&&&/i&&/a&等)&br&&/li&&li&2D直线的剪切算法(见&a href=&///?target=http%3A//en.wikipedia.org/wiki/Line_clipping& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Line clipping&i class=&icon-external&&&/i&&/a&)&br&&/li&&li&光栅化2D三角形(scan conversion)。避免重复光栅化相邻三角形边界的像素(edge equation)。&/li&&li&光栅化简单/复杂多边形&/li&&/ol&3D部分:&br&&ol&&li&把顶点从三维世界空间变换至二维屏幕空间,绘画顶点(如银河星系数据),操控摄像机旋转模型。&/li&&li&在剪切空间进行3D直线的剪切算法,把顶点连线(如各种三维正多面体)光栅化成wire frame模型&/li&&li&以多边形来定义三维模型。使用&a href=&///?target=http%3A//zh.wikipedia.org/wiki/%25E7%2594%25BB%25E5%25AE%25B6%25E7%25AE%%25B3%2595& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&画家算法&i class=&icon-external&&&/i&&/a&来光栅化那些多边形。&/li&&li&改为使用&a href=&///?target=http%3A//zh.wikipedia.org/wiki/%25E6%25B7%25B1%25E5%25BA%25A6%25E7%25BC%%& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&深度缓冲&i class=&icon-external&&&/i&&/a&。&/li&&li&实现简单的纹理映射,先做屏幕空间的插值,然后实现简单的perspective-correct texture mapping。&/li&&li&实现简单的顶点光照,使用顶点颜色插值实现Gouraud shading。&/li&&li&通过顶点法线插值,实现Phong shading。&br&&/li&&li&实现其他贴图技术,如mipmapping(也可试&a href=&///?target=http%3A//en.wikipedia.org/wiki/Summed_area_table& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Summed area table&i class=&icon-external&&&/i&&/a&)、bilinear/trilinear filtering、bump mapping、normal mapping、environment mapping等。&/li&&/ol&&br&我们还可以光栅化一些GPU不支持的primitive,例如Blinn大神在1979年就直接光栅化透示正确的球体来渲染太空CG:&br&&img src=&/f1e346a8_b.jpg& data-rawwidth=&575& data-rawheight=&536& class=&origin_image zh-lightbox-thumb& width=&575& data-original=&/f1e346a8_r.jpg&&可以参考[1]的1-3章。&br&&br&话说,我想过写一本关于这些的&科普读物&,不过总觉得受众太少……&br&&br&[1] Blinn, Jim. &i&Jim Blinn's corner: notation, notation, notation&/i&. Morgan Kaufmann, 2003.
开发过高大上的SALVIA, 则提到了Larrabee。我来提供另一些观点。首先,如果从学习角度出发,不必一开始完全根据现时GPU的架构及概念,来用软件复制一遍。现时的GPU主要是基于三角形光栅化及z-buffer。如果我们从图形学的历史进程来学习…
之前在公司内做的培训计划中,基础内容大概有以下这些:&br&&br&三维几何学基础:&br&&ol&&li&三维坐标系统&br&&/li&&li&点与矢量&br&&/li&&li&矩阵与几何变换&br&&/li&&li&四元数与三维旋转&br&&/li&&/ol&&br&实时渲染管道:&br&&ol&&li&应用阶段(场景管理、可见性剔除、分组排序、提交图元)&br&&/li&&li&几何阶段(顶点着色、图元组装、面向剔除、三角形裁剪、透视除法、视区变换)&br&&/li&&li&光栅化阶段(扫瞄转换、scissor/stencil/alpha 测试、alpha 混合)&br&&/li&&/ol&&br&游戏中的光照与阴影:&br&&ol&&li&实时光照分类(正向渲染、延迟渲染、Tile 正向/延迟渲染)&/li&&li&局部光照中的光源(环境光、方向光、点光、聚光、cookie)&br&&/li&&li&阴影(平面阴影、阴影体积、阴影贴图、PCF、VSM、CSM)&br&&/li&&li&全局光照(光照贴图、幅照度环境贴图、球谐函数)&br&&/li&&/ol&&br&材质着色原理与实践:&br&&ol&&li&材质反射模型(渲染方程、BRDF、Lambertian、Phong、Blinn-Phong)&br&&/li&&li&材质着色器编程(环境光、环境遮蔽、发光物体、贴图采样、环境贴图、法线贴图、轮廓光、纹理坐标动画)&br&&/li&&li&特殊着色器(卡通渲染、Kajiya-Kay、??)&br&&/li&&/ol&&br&由浅入深可先看[1],然后[2]。数学方面可参考[3]。&br&&br&[1] 《游戏引擎架构》,叶劲峰译,电子工业出版社,2014&br&[2] Akenine-M?ller, Tomas, Eric Haines, and Naty Hoffman. Real-time rendering Third Edition, CRC Press, 2008.&br&[3] Lengyel, Eric. Mathematics for 3D game programming and computer graphics. Cengage Learning, 2012.
之前在公司内做的培训计划中,基础内容大概有以下这些:三维几何学基础:三维坐标系统点与矢量矩阵与几何变换四元数与三维旋转实时渲染管道:应用阶段(场景管理、可见性剔除、分组排序、提交图元)几何阶段(顶点着色、图元组装、面向剔除、三角形裁剪、透…
1. 程序不等于数据结构加算法,而等于搜索引擎加英语。&br&2. 技术群是萌新的搜索引擎,同时也是老鸟的效率陷阱。很奇怪,喜爱社交的手艺人技术总是不咋地。&br&3. 遇到匪夷所思的Bug时,不要信邪,错误一定出在你自己身上。要坚信,引擎、类库以及语言本身,就像你的女友或老婆一样,永远正确。同样,所谓“运行效率低”也是一样。&br&4. 推荐一本技术书:《逻辑学导论》。&br&5. 魅力低的人能力总是被低估,团队中不善言辞以及长得丑的人值得留意。反之也成立,“你长得真好看”,“你给人的感觉很不错”,可以作为“你丫技术真烂”的委婉说辞。&br&6. 同事骂策划或产品傻逼,自己跟着骂骂就得了,千万别真的那么想,否则会降低你的可合作性。可合作性是项很重要的能力。&br&7. 《设计模式》、《人月神话》、《人件》、《我的编程感悟》等业内知名度很高的书,其实没什么卵用,但依然推荐阅读,可以用来和同行聊天时装逼。尤其是和写Java的程序员聊设计模式,能把人给唬跪了。但不要和用C系列语言的程序员聊这个。&br&8. 自动识别是IDE的标配,因此匈牙利命名法除了降低编码效率之外没什么别的好处。除非你用记事本敲代码,你长得真好看,你牛逼。&br&9. iOS开发真的是……非常简单,连初中小孩都学得会。招人难只不过因为Mac电脑普及率低。推荐给不明前途的新人。&br&10. 新人如果面试iOS,记得花一小时把斯坦福大学的某节有关MVC的公开课看明白,面试时候使劲讲。对面主程草包一点的话,没准会觉得醍醐灌顶,终于找到了之前遇到的一些奇葩问题的根源。&br&11. 有一种傻逼,总是嫌弃别人造的轮子不够圆,非要自己亲手造个方轮子。这种傻逼到处都是。以现成的类库坑多为由不用,非要自己写,不过是避开了现有的坑,转而亲手挖坑亲自跳。&br&12. H5真的没什么前途,那概念是用来忽悠傻钱的,始作俑者是李开复大大。新人可别被坑了。&br&13. cocos真是好啊!大家都快去用!Unity真垃圾!一大堆坑而且闭源没法改!千万别用!做游戏的都快去用cocos去!触控靠谱!cocos大法好!都别用Unity嗯。都别用才好。&br&14. 翻译官方文档是通向“业界大拿”的捷径。&br&15. 以极客自居的,多为极品。&br&16. 语言之间的隔阂,不过是要花一周熟悉下语法。勤奋点三天就够了。技术是技术,语言是语言,一门技术可以跨多门语言,程序员以技术分,而非以语言分。只有外行和新人才混为一谈。当然有不少写了多年程序依然停留在语法层面的老新人也分不清这个。
1. 程序不等于数据结构加算法,而等于搜索引擎加英语。2. 技术群是萌新的搜索引擎,同时也是老鸟的效率陷阱。很奇怪,喜爱社交的手艺人技术总是不咋地。3. 遇到匪夷所思的Bug时,不要信邪,错误一定出在你自己身上。要坚信,引擎、类库以及语言本身,就像你…
转贴一个同事的回答,已经得到了他口头情义授权...&br&1.手枪、霰弹枪等慢速射击的声音,一般就单次射击声音叠加非同步动作播放;&br&
快速射击类型的声音,比较复杂,通常最经济做法也是单发叠加,列入CS,生存之旅和他们公司的游戏都差不多。&br&有的差别可能就是处理叠加部分的是后发切断前发声音还是不切断,而是声音通道满了就释放最开始的声音,根据先后逐渐释放,一般有16个通道,具体根据声音引擎模块的处理能力。&br&&br&2.快速射击声音复杂点的做法就是区分第一发设计和连续射击的状态和声音效果,通过延迟来判断,是播放第一发声音,还是播放连续的声音。&br&第一发声音通常是一个单独的开火声音,带有完整的声音衰减形态,而连续的声音多是一个已经切好只有attack等前面声音阶段的声音片段,长度几乎就是连续射击两法的间距长度。超高速武器,片段则由一段已经制作好的多个片段组合的loop来代替单个片段,以减缓运算处理的压力。&br&除此以外还有一个末尾停止射击的尾巴声音,&br&最后通过一些比较高级的声音开发工具进行效果组合,程序直接调用声音开发工具的参数来实现。&br&除以上三个,第一发射击声音,片段或loop,射击结束尾巴的组件,还会额外播放一些不同类型环境下表现的连续射击混响和结束射击残响来渲染;同时增加实时的运算混响和闭塞等效果来做最终渲染。&br&
战地3~4是这样的做法。&br&3.具体繁杂也可以自由调节。通常一些音频开发组件能完成复杂的工作,例如Wwise,Fmod studio,等。 UE3我们现在用的引擎自带的声音系统只能完成最基本的声音播放功能。&br&4.至于音效和动作的配合,一般来说音效的播放和动作处理不太一致。比如动作有时候结束,声音还需要持续播放完成。基本也不会绑定到动作上去同步播放,而是独立两条逻辑单独运行,只是从视觉上进行匹配
转贴一个同事的回答,已经得到了他口头情义授权...1.手枪、霰弹枪等慢速射击的声音,一般就单次射击声音叠加非同步动作播放; 快速射击类型的声音,比较复杂,通常最经济做法也是单发叠加,列入CS,生存之旅和他们公司的游戏都差不多。有的差别可能就是处理…
我来缅怀一下当年OI和ACM的日子……题目都在 &a href=&///?target=http%3A//poj.org/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&poj.org/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& 上。&br&&br&&p&&b&初期(校赛及省赛水题难度):&/b&&/p&&p&一.基本算法:&br&&/p&&ul&&li&枚举. (poj1753,poj2965)&br&&/li&&li&贪心(poj1328,poj2109,poj2586)&br&&/li&&li&递归和分治法.&br&&/li&&li&递推.&br&&/li&&li&构造法.(poj3295)&br&&/li&&li&模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)&br&&/li&&/ul&二.图算法:&br&&ul&&li&图的深度优先遍历和广度优先遍历.&br&&/li&&li&最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra) &br&(poj1860,poj3259,poj1062,poj2253,poj1125,poj2240)&/li&&li&最小生成树算法(prim,kruskal) &br&(poj1789,poj2485,poj1258,poj3026)&/li&&li&拓扑排序 (poj1094)&br&&/li&&li&二分图的最大匹配 (匈牙利算法) (poj3041,poj3020)&br&&/li&&li&最大流的增广路算法(KM算法). (poj1459,poj3436)&br&&/li&&/ul&三.数据结构.&br&&ul&&li&串 (poj1035,poj3080,poj1936)&br&&/li&&li&排序(快排、归并排(与逆序数有关)、堆排) (poj2388,poj2299)&br&&/li&&li&简单并查集的应用.&br&&/li&&li&哈希表和二分查找等高效查找法(数的Hash,串的Hash) &br&(poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503)&/li&&li&哈夫曼树(poj3253)&br&&/li&&li&堆&br&&/li&&li&trie树(静态建树、动态建树) (poj2513)&br&&/li&&/ul&四.简单搜索&br&&ul&&li&深度优先搜索 (poj2488,poj3083,poj3009,poj1321,poj2251)&br&&/li&&li&广度优先搜索(poj3278,poj1426,poj3126,poj3087.poj3414)&br&&/li&&li&简单搜索技巧和剪枝(poj2531,poj1416,poj)&br&&/li&&/ul&五.动态规划&br&&ul&&li&背包问题. (poj1837,poj1276)&br&&/li&&li&型如下表的简单DP(可参考lrj的书 page149):&br&E[j]=opt{D+w(i,j)} (poj3267,poj1836,poj1260,poj2533)&br&E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最长公共子序列) (poj3176,poj1080,poj1159)&br&C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最优二分检索树问题)&/li&&/ul&六.数学&br&&ul&&li&组合数学:&br&1.加法原理和乘法原理.&br&2.排列组合.&br&3.递推关系.&br&(POJ3252,poj1850,poj1019,poj1942)&/li&&li&数论.&br&1.素数与整除问题&br&2.进制位.&br&3.同余模运算.&br&(poj2635, poj3292,poj1845,poj2115)&/li&&li&计算方法.&br&1.二分法求解单调函数相关知识.(poj3273,poj3258,poj1905,poj3122)&/li&&/ul&七.计算几何学.&br&&ul&&li&几何公式.&br&&/li&&li&叉积和点积的运用(如线段相交的判定,点到线段的距离等). (poj2031,poj1039)&br&&/li&&li&多边型的简单算法(求面积)和相关判定(点在多边型内,多边型是否相交)&br&(poj1408,poj1584)&/li&&li&凸包. (poj2187,poj1113)&br&&/li&&/ul&&p&&b&中级(校赛压轴及省赛中等难度):&/b&&br&一.基本算法:&br&&/p&&ul&&li&C++的标准模版库的应用. (poj3096,poj3007)&br&&/li&&li&较为复杂的模拟题的训练(poj3393,poj1472,poj3371,poj1027,poj2706)&br&&/li&&/ul&二.图算法:&br&&ul&&li&差分约束系统的建立和求解. (poj1201,poj2983)&br&&/li&&li&最小费用最大流(poj2516,poj2516,poj2195)&br&&/li&&li&双连通分量(poj2942)&br&&/li&&li&强连通分支及其缩点.(poj2186)&br&&/li&&li&图的割边和割点(poj3352)&br&&/li&&li&最小割模型、网络流规约(poj3308)&br&&/li&&/ul&三.数据结构.&br&&ul&&li&线段树. (poj2528,poj2828,poj2777,poj2886,poj2750)&br&&/li&&li&静态二叉检索树. (poj2482,poj2352)&br&&/li&&li&树状树组(poj1195,poj3321)&br&&/li&&li&RMQ. (poj3264,poj3368)&br&&/li&&li&并查集的高级应用. (poj)&br&&/li&&li&KMP算法. (poj1961,poj2406)&br&&/li&&/ul&四.搜索&br&&ul&&li&最优化剪枝和可行性剪枝&br&&/li&&li&搜索的技巧和优化 (poj3411,poj1724)&br&&/li&&li&记忆化搜索(poj3373,poj1691)&br&&/li&&/ul&&br&五.动态规划&br&&ul&&li&较为复杂的动态规划(如动态规划解特别的旅行商TSP问题等)&br&(poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034)&/li&&li&记录状态的动态规划. (POJ3254,poj2411,poj1185)&br&&/li&&li&树型动态规划(poj2057,poj1947,poj2486,poj3140)&br&&/li&&/ul&六.数学&br&&ul&&li&组合数学:&br&1.容斥原理.&br&2.抽屉原理.&br&3.置换群与Polya定理(poj1286,poj2409,poj3270,poj1026).&br&4.递推关系和母函数.&/li&&li&数学.&br&1.高斯消元法(poj2947,poj1487, poj2065,poj1166,poj1222)&br&2.概率问题. (poj3071,poj3440)&br&3.GCD、扩展的欧几里德(中国剩余定理) (poj3101)&/li&&li&计算方法.&br&1.0/1分数规划. (poj2976)&br&2.三分法求解单峰(单谷)的极值.&br&3.矩阵法(poj3150,poj3422,poj3070)&br&4.迭代逼近(poj3301)&/li&&li&随机化算法(poj3318,poj2454)&/li&&li&杂题(poj1870,poj3296,poj3286,poj1095)&/li&&/ul&七.计算几何学.&br&&ul&&li&坐标离散化.&br&&/li&&li&扫描线算法(例如求矩形的面积和周长并,常和线段树或堆一起使用)&br&(poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)&/li&&li&多边形的内核(半平面交)(poj3130,poj3335)&br&&/li&&li&几何工具的综合应用.(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429)&br&&/li&&/ul&&p&&br&&b&高级(regional中等难度):&/b&&br&一.基本算法要求: &br&&/p&&ul&&li&代码快速写成,精简但不失风格 &br&&/li&&li&(poj2525,poj1684,poj1421,poj1048,poj2050,poj3306)&br&&/li&&li&保证正确性和高效性. poj3434&br&&/li&&/ul&二.图算法:&br&&ul&&li&度限制最小生成树和第K最短路. (poj1639)&br&&/li&&li&最短路,最小生成树,二分图,最大流问题的相关理论(主要是模型建立和求解)&br&(poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446&/li&&li&最优比率生成树. (poj2728)&br&&/li&&li&最小树形图(poj3164)&br&&/li&&li&次小生成树.&br&&/li&&li&无向图、有向图的最小环 &br&&/li&&/ul&三.数据结构. &br&&ul&&li&trie图的建立和应用. (poj2778)&br&&/li&&li&LCA和RMQ问题(LCA(最近公共祖先问题) 有离线算法(并查集+dfs) 和 在线算法(RMQ+dfs)).(poj1330)&/li&&li&双端队列和它的应用(维护一个单调的队列,常常在动态规划中起到优化状态转移的目的). (poj2823)&/li&&li&左偏树(可合并堆). &br&&/li&&li&后缀树(非常有用的数据结构,也是赛区考题的热点).(poj3415,poj3294)&/li&&/ul&四.搜索 &br&&ul&&li&较麻烦的搜索题目训练(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)&br&&/li&&li&广搜的状态优化:利用M进制数存储状态、转化为串用hash表判重、按位压缩存储状态、双向广搜、A*算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)&br&&/li&&li&深搜的优化:尽量用位运算、一定要加剪枝、函数参数尽可能少、层数不易过大、可以考虑双向搜索或者是轮换搜索、IDA*算法. (poj3131,poj2870,poj2286)&br&&/li&&/ul&五.动态规划 &br&&ul&&li&需要用数据结构优化的动态规划.(poj2754,poj3378,poj3017)&/li&&li&四边形不等式理论.&br&&/li&&li&较难的状态DP(poj3133)&br&&/li&&/ul&六.数学 &br&&ul&&li&组合数学.&br&1.MoBius反演(poj2888,poj2154)&br&2.偏序关系理论.&/li&&li&博奕论.&br&1.极大极小过程(poj3317,poj1085)&br&2.Nim问题.&/li&&/ul&七.计算几何学. &br&&ul&&li&半平面求交(poj3384,poj2540)&br&&/li&&li&可视图的建立(poj2966)&br&&/li&&li&点集最小圆覆盖.&br&&/li&&li&对踵点(poj2079)&br&&/li&&/ul&&p&八.综合题.&br&
(poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263)&/p&&br&&p&=====================================================================&/p&&br&&p&&b&扯点建议:&/b&&/p&&p&如果你不是要死磕acm搞出成绩来的话,多放点心思在数据结构上对以后的帮助会比较大,比如字符串相关的字典树、哈希、自动机、后缀树等等,而对脑力要求较高的比如博弈论和各种花式动态规划(树型DP、集合DP、插头DP等等)就不用太关心了。&/p&&br&&p&btw这些算法和数据结构如果能精通的话,对你以后做数据挖掘和机器学习是有极大帮助的。&/p&&br&&p&欢迎关注我的专栏:&a href=&/simons& class=&internal&&SimonS's Algo - 知乎专栏&/a&&/p&&p&不定期更新算法相关内容。&/p&
我来缅怀一下当年OI和ACM的日子……题目都在
上。初期(校赛及省赛水题难度):一.基本算法:枚举. (poj1753,poj2965)贪心(poj1328,poj2109,poj2586)递归和分治法.递推.构造法.(poj3295)模拟法.(poj1068,poj2632,poj1573,poj2993,poj299…
更新&br&&br&&br&&b&学习使用Linux系统并不是因为系统的优越性,而是因为Linux是操作系统大家族中非常重要的一员,有一些重要的开发环境和架构会重度依赖某些操作系统,因此计算机专业的学生很可能难以避免使用这种操作系统。&/b&&br&&br&我发现很多人特别容易陷入一个误区,就是Linux多么多么的好,而Windows多么多么的槽糕。其实我想说,Linux没有说得那么好,而Windows也没有那么糟。至少,我从来不觉得放着好好的IDE按一下按钮就能生成程序不用,而要自己用vi写程序、用makefile组织gcc编译连接在用gdb是一个很优越的事情。至于Windows为什么没有那么糟,与题目无关,不做讨论。 &br&&br&作为一个计算机的学生,Linux相关的知识,无论是配置还是开发,都应该多多少少掌握一些,不然一旦被别人问起都不好意思抬头。至于为什么要学,自然是Linux这个东西有非常多的好处。Linux作为开源软件中的杰出代表,是一个优秀的操作系统,这一点没有人能够否认。&br&&br&因为他开放的特性,以及在系统结构和机制上,有很大程度参考了UNIX,使得Linux系列的系统在安全性和稳定性上有着很明显的优势。又加上开源软件免费的特点,Linux系统常常作为服务器的操作系统被部署,尤其是不太原因在这些方面花钱的互联网行业。而诸如金融、能源等不缺钱的传统行业,也会使用不少Liux系统,而使用的原因就不是因为便宜了,需要付费的商业版本Linux叫价不见得比Windows要便宜。一些软件生态系统、环境、架构会依赖特定的操作系统,当需要使用这些软件的时候,就难以避免的选择他所依赖的系统。&br&&br&对于一个计算机的学生,我们多多少少都要和服务器打交道。即使你下定决心,只做Windows的主机应用程序,也很难保证遇不到这样的一个东西,尤其当客户要求你使用Linux的时候,你就是长了一万张嘴也逃不出Linux的魔掌。所以,还是坦然接受他和学习他。 &br&&br&比起Windows,Linux绝对谈不上好用,甚至还会有些难用,我见到真正“使用”Linux的人都非常的少,除了少部分geeks或者开发需要外,没有什么人乐意一直在Linux下折腾东西。执行一个什么命令很可能就要输入密码,有时复制文件也会因为权限问题需要sudo,但是正是因为这些麻烦而又复杂的机制,Linux的安全性提高了很多,而Windows,为了对于用户的可用性,安全性就做了一些牺牲。所以说Linux大部分的时候都不是拿来用的,而是运行在服务器上,跑起来就再也不管了。
&br&&br&怎么入门的话,如果对于这个东西完全一无所知,可以先装一个ubuntu尝试一下,试着去理解这个系统,当然,如果怕搞坏电脑,可以装载虚拟机里面。当过了一段时间以后,对于Linux的目录结构、工作机制、配置方法和一些常用命令稍微了解了以后,就可以开始用一些正经的系统了,比如说debian或者红帽家族的centos,尝试一下最小安装(连图形界面也没有)以后,怎么样把需要用的环境和服务搭建起来。然后在试着在上面写一些程序。到了这里,往后再这么样那时候的你应该是清楚了,并且能够决定该学一些什么东西了。
&br&&br&切记一点,学习要由浅入深。如果有人跟你说要你看一下内核的源码,千万不要理睬,也不要去看,至少在你觉得你能够教别人用Linux之前,不要去尝试。那种东西只能越看越是一头雾水,从API管中窥豹也比这样来得强。鸟哥那本书是一本不错的书,值得看,争取一个月之内甩开这本书(或者一个月太长,两周?),接下来就是多查多学。&br&&br&补充:&br&不得不使用Linux的情况举两个例子:&br&Redis是始终著名的内存数据库,特点是速度快、效率高,但是Redis没有官方的Windows版本,Redis这样高效的内存数据库又是少有的,当你需要使用它的时候,你便不得不使用Linux。另外一个例子是nginx,也是一个著名的Web Server,nginx虽然有官方的Windows版本,但是官方也声明了,Windows版本是试验性质,仅仅能用,不要指望有很好的性能。&br&&br&使用Linux的好处还有一个,当时回答这个问题的时候没有认识到。总的来说也不能说Windows不好,就是使用Windows服务器的时候,如果只是你自己一个人管理倒也没什么。如果有别人管理,下一次你登录服务器的时候,没准能看到各种安全卫士、优化大师、一键加速、快播之类熟悉的东西。
更新学习使用Linux系统并不是因为系统的优越性,而是因为Linux是操作系统大家族中非常重要的一员,有一些重要的开发环境和架构会重度依赖某些操作系统,因此计算机专业的学生很可能难以避免使用这种操作系统。我发现很多人特别容易陷入一个误区,…
&b&[简单解答]&/b&&br&&br&关于遗忘的原因,认知心理学(cognitive psychology)认为,部分记忆是压箱底了(无法读取,但未删除),部分则是真的遗忘了(由于生理等各种原因被完全或部分删除)。&br&&br&&b&以下这个答案比本人的答案更有价值,因为完全针对题主的问题进行了解答&/b&&br&&a href=&/question//answer/& class=&internal&&忘掉的东西是从人脑中永久删除了还是存在了某个地方却无法读取? - 苏语的回答&/a&&br&&br&以上就是对遗忘最简单的解释。如果不想更深入了解什么是记忆,下面的部分可以忽略,或者直接读第7部分。详细解说记忆这个概念有助于了解为何人们会遗忘。以下资料共分8个部分,采用树状陈列以增加可读性与可维护性。&br&&br&&br&&b&[详细资料]&/b&&br&&br&0. 定义&br&0.1. 记忆是处理与提取人们所见、所闻、所想、所经历之事物的认知过程与认知架构&br&&br&1. 记忆分为:&br&1.1. 工作记忆(working memory, WM)&br&1.2. 短期记忆(short-term memory, STM)&br&1.3. 长期记忆(long-term memory, LTM)&br&&br&2. 工作记忆&br&2.1. 在思维组织、逻辑运算、处理信息的时候,通过抽取长期记忆的一些片段组成&br&2.2. 工作机制类似电脑内存,因为用完即弃、不一定会写入硬盘(长期记忆)中&br&2.3. 有些观点认为工作记忆就是短期记忆,但我认为两者有些区别&br&&br&3. 短期记忆&br&3.1. 通过外部输入而留存于脑中不多于20秒到一分钟的记忆&br&3.2. 根据Miller(1956)的“神奇7(Magic Number of 7)”理论,人类一般可以同时储存7±2个短期记忆片段(例如7个英文单词)&br&3.3. 如果旧的不加以储存、新的不断输入,短期记忆很快就会遗忘&br&3.4. 工作机制类似缓存&br&&br&4. 长期记忆&br&4.1. 通过神经回路的强化,一些重要的资讯会被储存为长期记忆&br&4.2. 长期记忆可以保存几天、几个星期,甚至一辈子&br&4.3. 长期记忆分为:&br&4.3.1. 隐式记忆(implicit memory)和显式记忆(explicit memory)&br&- 4.3.1.1. 隐式记忆是程序性的(procedural)、无意识的,如果你发现自己无意识地按照习惯完成一件事(例如无意思地弹奏一首曲子、从家门口走到车站却没有刻意去做),那么隐式记忆起了作用&br&- 4.3.1.2. 显式记忆是语义化的(semantic)、有意识的,例如读完一首诗后把它背出来、知道“地球围绕太阳转”这样的知识或共识、对个人经历的回忆等&br&
4.3.2. 陈述性记忆(declarative memory)和程序性记忆(procedural memory)&br&- 4.3.2.1. 陈述性记忆包括语义式记忆(semantic memory)与情节式记忆(episodic memory);其中,语义式记忆是语义化、结构化与层化的,常见于知识的学习中,思维导图就是语义式记忆的最直观体现;情节式记忆或情景记忆则涉及情景与先后顺序,即通过叙述一个情景来勾起相应的回忆&br&- 4.3.2.2. 程序性记忆可以是有意识的(例如学到的技能,这些技能往往是涉及先后顺序的)和无意识的(参见4.3.1.1.)&br&
4.3.3. 可以发现,4.3.1.、4.3.2.这两个概念是相互重叠的,可用韦恩图表示,但他们并不相互等同&br&4.4. 长期记忆的容量理论上是无限的&br&4.5. 工作机制类似硬盘&br&&br&5. 记忆流程&br&5.1. 简单而言,记忆的流程是:输入-编码-储存-提取(retrieval)&br&5.2. 任何所见、所闻、所想、所经历的事物,即为输入(input)&br&5.3. 对于输入的内容,我们需要编码(encoding),转换为自己理解的意义,才能进一步储存,否则很快遗忘(所以上课听讲、听明白比机械性地抄笔记更重要;如果自己不理解概念,记了也只会仅仅留存于纸上。共勉之。)&br&5.4. 一般的记忆复诵模式包括维持性复诵(maintenance rehearsal )和精致性复诵(elaborative rehearsal)&br&
5.4.1. 维持性复诵可以理解为死记硬背,即机械性、重复性、不求甚解的记忆方法&br&
5.4.2. 精致性复诵包括语义式记忆(见4.3.1.2.、4.3.2.1.、5.3.)、关联性记忆(例如思维导图、将新的知识与旧的知识关联以促进理解)、情节、情景式记忆(睹物思人、看到某人的照片就想起和他/她的一些往事)、陈述性记忆(以讲故事的方式)等&br&5.5. 研究发现,如果在一定时间段内记忆一系列的事物:&br&
5.5.1. 最开始和最末尾的事物通常印象最深刻,名为系列位置效应(serial position effect)&br&
5.5.2. 如果使用概念归纳整合法(chunking),可以在短时间内记忆较多的内容&br&
5.5.3. 如果要加深记忆,可以有规律地、一而再、再而三地去记忆&br&&br&6. 提取记忆&br&6.1. 短期和长期记忆都可以提取&br&6.2. 短期记忆因为需要在当前运用,所以会频繁提取、重新写入修改、再提取······&br&6.3. 长期记忆可通过陈述、关联记忆提取,如使用思维导图&br&6.4. 不同的复诵模式(见5.4.)有不同的提取方法&br&&br&&b&7. 为什么我们会遗忘&/b&&br&&b&7.1. 压箱底了:正如一开始所言,部分长期记忆无法找到关联的记忆去提取它&/b&&br&&b&7.2. 工作或短期记忆:只存在于工作记忆或短期记忆中,没有存入长期记忆&br&7.3. 创伤性记忆:不美好的记忆,人为(&/b&&b&可能是潜意识地&/b&&b&)选择遗忘;2013年,麻省理工的科学家在小鼠身上发现了一种有助于遗忘不美好记忆的基因&/b&&b&Tet1&/b&&b&,文章链接:&a href=&///?target=http%3A////gene-forget-bad-memories-found-by-scientists_n_3957354.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Gene For Forgetting Bad Memories Identified By MIT Scientists&i class=&icon-external&&&/i&&/a&&br&7.4. 记忆干扰与压制(interference):最旧、开始的记忆会压制我们去记忆后面的内容(proactive interference),而最新、最末尾的记忆也会覆盖前面的记忆&/b&&b&(retroactive interference)&/b&&b&,导致被干扰的记忆、特别是中间的记忆丢失(见5.5.1.);不重要的记忆也会被更重要的记忆压制&/b&&br&&b&7.5. 记忆衰退曲线:即便储存在长期记忆里,如果不加以巩固,也会逐渐遗忘&br&7.6. 脑子坏掉了,例如神经损伤、脑损伤&/b&&br&&br&参考资料:有关记忆的简介(英文)&br&&a href=&///?target=http%3A//www.simplypsychology.org/memory.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Memory, Encoding Storage and Retrieval&i class=&icon-external&&&/i&&/a&&br&&br&&br&&b&[更新日志]&/b&&br&&br&日:添加新的记忆分类;修改记忆过程一项&br&&br&&br&&b&[声明]&/b&&br&&br&本文内容全部开源,欢迎转载并无需告知与声明著作权
[简单解答]关于遗忘的原因,认知心理学(cognitive psychology)认为,部分记忆是压箱底了(无法读取,但未删除),部分则是真的遗忘了(由于生理等各种原因被完全或部分删除)。以下这个答案比本人的答案更有价值,因为完全针对题主的问题进行了解答
谢邀。以下有大量图片,请珍惜流量。&br&&br&这个问题实在是太大了,展开讲三天也讲不完,因为数学+编程能做的有意思的事情实在是太多了。你随意找一个方向,左手捧一套高数右手捧一台电脑,一头扎下去,相信都能找到无数可以摆弄的事情。在此结合自己做过的项目给你讲讲高数的应用(省略全部数学细节)。&br&&br&&b&一、图形学&/b&&br&图形学的目标是创造一个真实的三维场景供你在里面漫游,它是所有三维游戏的基础。它的原理很简单,在一个空间里放上三角形、箱子、机器人或云,摆好摄像头,放置光源,然后计算摄像头应该看到什么,把结果显示在电脑屏幕上。不仅是静态的成像,动态的物理过程也可以实现,比如雾、碰撞、重力等等。&br&&br&辐射3截图&br&&img src=&/2d3bab880e51e4a2349f67a_b.jpg& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/2d3bab880e51e4a2349f67a_r.jpg&&&br&&b&1.1 三维漫游&/b&&br&你可以用OpenGL和C++轻松实现一个三维漫游程序(流畅性优先),然后不断往里面添加各种模型(球体、三角面片几何体、飞机)和属性(遮挡、抗锯齿、透明、玻璃、爆炸),最终把你的漫游程序变成一个精美的实时游戏。&br&&br&三维海战(图片来自百度图片)&br&&img src=&/26ae18ecc29f_b.jpg& data-rawwidth=&1920& data-rawheight=&1054& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&/26ae18ecc29f_r.jpg&&&br&&b&1.2 光线追踪器&/b&&br&可以着重研究光线是如何照射和成像的(精美性优先),实现各种相机(双目、鱼眼、弱投影),材质(金属、玻璃),光源类型(点光源、方向光源、区域光源)以及光照模型(BRDF、路径追踪),最终你想画啥都能画得惟妙惟肖。光线追踪器的渲染速度很慢,程序要追踪海量光线的反射和折射分量,比如下方的钻石图案需要运行5分钟才能画完。虽然不能实时移动和旋转相机,但是渲染的结果极其逼真。&br&&br&用C++实现的玻璃材质&br&&img src=&/d000de4f3fff_b.jpg& data-rawwidth=&600& data-rawheight=&400& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&/d000de4f3fff_r.jpg&&&br&&br&用光线追踪器pov-ray画的钻石&br&&img src=&/82b5f5ac2b_b.jpg& data-rawwidth=&720& data-rawheight=&405& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&/82b5f5ac2b_r.jpg&&&br&&b&1.3 基于GPU的加速渲染&/b&&br&当然,你也可以兼顾渲染质量和动画帧速,这个时候就需要使用更强大的计算资源,可以并行计算的GPU是不二的选择。看看CUDA的代码,你可以做一个体渲染模块来实时观察CT图像,卖给医学图像处理公司(也许)能赚大钱。&br&&br&Volume rendering(图片来自网络)&br&&img src=&/004f7ece2beff2fed8377c_b.jpg& data-rawwidth=&1280& data-rawheight=&1024& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/004f7ece2beff2fed8377c_r.jpg&&&br&&b&二、图像处理&/b&&br&很多图像应用都需要对图像进行必要地预处理,如去噪、融合、分割、去雾、去模糊、视频去抖动等等,这个领域非常广泛,有大量模型和理论支撑。各位常用的Photoshop和美图秀秀里面成百上千的滤镜,可以说每一个背后都有一个数学模型。下面举一个例子。&br&&b&2.1 分割&/b&&br&有一种简单的分割算法叫Superpixel,它可以把一幅图像分割成好多个小块,保证每一个小块中颜色都差不多。当然,还有其他许多分割算法,Superpixel的好处是简单,并且很容易推广到三维空间。&br&&br&Superpixel分割(图片来自&a href=&///?target=http%3A//ivrg.epfl.ch/supplementary_material/RK_SLICSuperpixels/index.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这里&i class=&icon-external&&&/i&&/a&)&br&&img src=&/d2fd61d8d2c_b.jpg& data-rawwidth=&321& data-rawheight=&481& class=&content_image& width=&321&&&br&&br&&b&2.2 医学图像处理&/b&&br&经过分割后,图像被过度分割成了很多小块,这时就可以用模式识别的算法把属于同一类的小块们再合在一起。利用分割+分类的算法,可以把三维CT图像中的骨头全自动剔除。&br&&br&CT图像去骨的结果&br&&img src=&/0b9ff2b023c879c183ded_b.jpg& data-rawwidth=&720& data-rawheight=&238& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&/0b9ff2b023c879c183ded_r.jpg&&&br&&br&&b&三、计算机视觉&/b&&br&计算机视觉的目标是&b&理解&/b&摄像机拍摄的图像,它的研究范围极其广泛,比如人脸识别、文字识别、目标追踪等等。在此介绍这一领域几个重要的方向。&br&大家都知道图像是二维的,而真实世界是三维的,上面介绍的图形学的原理是预先建一个三维场景然后研究摄像头看到的图像是什么样子,计算机视觉的野心则大得多:给你几幅二维图像,还原三维场景是什么。&br&&b&3.1 一幅图像与测量&/b&&br&拿到一幅图像,可以获得平行关系,测量图像中不同物体的长度比值,在知乎也有不少朋友关心这个问题,感兴趣可以戳&a href=&/question//answer/& class=&internal&&如何根据一张 A 楼照 B 楼的照片判断出这张照片是 A 楼的几层?&/a&以及&a href=&/question//answer/& class=&internal&&如何测量一副图片中物体的实际尺寸?&/a&&br&&br&单目测量(图片来自文献&a href=&///?target=http%3A///link%3Furl%3DaZeZDmCCoFstdo0m2-R_WlAm5yHFSSEjujoEmCFM_VaIJQpkdNcy3gXezlUxpUlb31wUZJWbWBh-ZcNs-YlTR4-UNRhEO4jQ4on2b29Zcpe& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Single view metrology&i class=&icon-external&&&/i&&/a&)&br&&img src=&/14b929d28065a6eda5a153e30ad1259e_b.jpg& data-rawwidth=&506& data-rawheight=&309& class=&origin_image zh-lightbox-thumb& width=&506& data-original=&/14b929d28065a6eda5a153e30ad1259e_r.jpg&&&br&&b&3.2 两幅图像与双目视觉&/b&&br&拿到两幅在不同位置拍摄的同一场景的图像,就可以恢复出场景,在知乎也有相关讨论:&a href=&/question//answer/& class=&internal&&使用两张角度不同的静态图像合成连贯的动画,难度有多大?&/a&&br&&br&&b&3.3 多幅图像与三维重建&/b&&br&计算机视觉在这二十年最激动人心的成果之一就是完成了从多幅图像序列重建三维场景的研究,从数学上和编程实现上解决了这一从二维重建三维的过程。试想你拿着摄像机在街上绕一圈,像CS地图那样的三维游戏场景就实时重建出来是多么激动人心啊。&br&&br&三维重建更具体的定义是:通过同一场景的多幅图像,恢复出每一幅图像拍摄时相机的位置和姿态,以及每一幅图像上的每一个点在三维空间中的位置。&br&&br&邻居家的一系列照片之一&br&&img src=&/06cbd89bbe6f2cbd6a7f9_b.jpg& data-rawwidth=&400& data-rawheight=&300& class=&content_image& width=&400&&&br&恢复出的相机位姿和稀疏特征点位置&br&&img src=&/bef818cd22b_b.jpg& data-rawwidth=&640& data-rawheight=&480& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/bef818cd22b_r.jpg&&&br&三维稠密重建(图片来自文献&a href=&///?target=http%3A///link%3Furl%3D3QO48gipMX2C0-v0hl5OJq6V-PU9gpV8laxOczrXEaspkKWn1GWcJmxE0ALECjuN8q_2fcvO9P0P_NCfj5GNY1b90VHQ9OkQ0Xjy-6wpFD531urtrClQ8d3tBzQDnohGuF2FH1_5rxwh1I4DQMhHolViACwDRiY3j5dkZ4oT8H7& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Accurate, Dense, and Robust Multiview Stereopsis&i class=&icon-external&&&/i&&/a&)&br&&img src=&/0e5c0a34be457dc8f589e62e25b5b078_b.jpg& data-rawwidth=&1036& data-rawheight=&307& class=&origin_image zh-lightbox-thumb& width=&1036& data-original=&/0e5c0a34be457dc8f589e62e25b5b078_r.jpg&&&br&&b&四、模式识别&/b&&br&模式识别研究输入和输出的关系,比如给你一系列病人的体征和谁有病谁没病,模式识别需要找一个模型建立体征和是否有病之间的函数关系。在图像处理、计算机视觉、医疗、生物、社会学中具有非常广泛的应用。在The Elements of Statistical Learning的第一章里提出了四个典型问题:&br&&ul&&li&垃圾邮件和正常邮件的区分&/li&&li&前列腺癌症确诊&/li&&li&数字手写字符识别&/li&&li&DNA序列和性状的关系&/li&&/ul&模式识别把这些具体问题背后共同的模式抽象出来,集中精力研究什么样的特征判别能力更强以及什么样的模型正确分类效率高。&br&&br&&b&五、综合应用&/b&&br&当你掌握的知识和技能足够多了,就可以做一些需要很多环节的大项目,随便举几个例子:&br&&ol&&li&在你家门口摆一台摄像机,自动识别和记录身高在1米7到1米8之间、身材姣好、长发、爱笑的女生的一举一动。一旦记录到一个符合要求的女生,将她加入数据库,以后单独更新,不同女生之间不能搞混。&/li&&li&买一个机器人(带轱辘能自由移动并且安有摄像头的电脑),让它自己漫游探测环境,建立三维地图,搞清楚自己在哪,这也是计算机视觉中的一个已经理论上完美解决的重要问题:即时定位与地图构建 (Simultaneous localization and mapping, SLAM)。&/li&&li&做一架飞机,它的功能是无论谁在追它都尽量甩掉;做一枚导弹,它的功能是尽量追上飞机,或者在附近爆炸;再做一个酷炫的供军区司令观赏的三维场景显示环境,把一些飞机和导弹放进去追着打去吧。&/li&&br&&/ol&&b&六、如何入手&/b&&br&&b&6.1 看优秀教材&/b&&br&首先,学好高等数学、概率统计和线性代数(矩阵论)足矣,其他数学知识可以在具体学习模型的过程中掌握。&br&然后,看一些优秀的外文教材译文版,比如:&br&&ul&&li&图形学:OpenGL超级宝典(第5版)、交互式计算机图形学:基于OpenGL着色器的自顶向下方法(第6版)&/li&&li&光线追踪器:光跟踪算法技术(Ray Tracing from the Ground Up)&/li&&li&图像处理:数字图像处理(第3版, 冈萨雷斯著),图像处理、分析与机器视觉(第3版)&/li&&li&计算机视觉:计算机视觉中的多视图几何(Multiple View Geometry in Computer Vision),计算机视觉:算法与应用(Computer Vision: Algorithms and Applications)&/li&&li&模式识别与机器视觉:模式分类(第二版),模式识别(第四版),The Elements of Statistical Learning, Pattern Recognition and Machine Learning&/li&&/ul&&b&6.2 看文献&/b&&br&&b&6.3 看代码&/b&&br&OpenGL、OpenCV、CUDA都有相应的文档和代码实例,也可以在网上找附有代码的教材,研究代码,模仿先人的代码。首先练习基本的函数,然后依照兴趣实现几个非常简单的应用。自己找一个问题,实现一个最简单的解决方案,然后不断精进代码、尝试新的模型,最后就精通了这个领域。
谢邀。以下有大量图片,请珍惜流量。这个问题实在是太大了,展开讲三天也讲不完,因为数学+编程能做的有意思的事情实在是太多了。你随意找一个方向,左手捧一套高数右手捧一台电脑,一头扎下去,相信都能找到无数可以摆弄的事情。在此结合自己做过的项目给…
已有帐号?
无法登录?
社交帐号登录
2391 人关注
5175 人关注
1680 个回答
5090 人关注
544 个回答
280 人关注

我要回帖

更多关于 梦见从高处掉下来 的文章

 

随机推荐