欢迎来到相识电子书!

标签:编程

  • Algorithmic Puzzles

    作者:Anany Levitin,Maria

    Algorithmic puzzles are puzzles involving well-defined procedures for solving problems. This book will provide an enjoyable and accessible introduction to algorithmic puzzles that will develop the reader's algorithmic thinking. The first part of this book is a tutorial on algorithm design strategies and analysis techniques. Algorithm design strategies - exhaustive search, backtracking, divide-and-conquer and a few others - are general approaches to designing step-by-step instructions for solving problems. Analysis techniques are methods for investigating such procedures to answer questions about the ultimate result of the procedure or how many steps are executed before the procedure stops. The discussion is an elementary level, with puzzle examples, and requires neither programming nor mathematics beyond a secondary school level. Thus, the tutorial provides a gentle and entertaining introduction to main ideas in high-level algorithmic problem solving. The second and main part of the book contains 150 puzzles, from centuries-old classics to newcomers often asked during job interviews at computing, engineering, and financial companies. The puzzles are divided into three groups by their difficulty levels. The first fifty puzzles in the Easier Puzzles section require only middle school mathematics. The sixty puzzle of average difficulty and forty harder puzzles require just high school mathematics plus a few topics such as binary numbers and simple recurrences, which are reviewed in the tutorial. All the puzzles are provided with hints, detailed solutions, and brief comments. The comments deal with the puzzle origins and design or analysis techniques used in the solution. The book should be of interest to puzzle lovers, students and teachers of algorithm courses, and persons expecting to be given puzzles during job interviews.
  • 游戏开发的数学和物理

    作者:[ 日] 加藤洁

    本书严格选取了游戏开发中最常用的数学和物理学知识,通过游戏开发实例,配上丰富的插图,以从易到难的顺序进行讲解。第1章到第5章分别讲解了物体的运动、卷动、碰撞检测、光线的制作、画面切换的细分处理。这五章将2D游戏必需的知识一网打尽,同时还严格挑选了少量3D游戏编程的基础内容以供参考。第6章系统梳理了游戏开发的数学和物理学理论,帮助读者更好地理解前五章的内容。 本书适合网络和手机游戏开发者阅读。
  • 特别版MATHEMATICA全书

    作者:[美] 斯蒂芬·沃尔夫雷

  • 算法心得:高效算法的奥秘(原书第2版)

    作者:(美)Henry S. Warren,

    【编辑推荐】 由在IBM工作50余年的资深计算机专家撰写,Amazon全五星评价,算法领域最有影响力的著作之一 Google公司首席架构师、Jolt大奖得主Hoshua Bloch和Emacs合作创始人、C语言畅销书作者Guy Steele倾情推荐 算法的艺术和数学的智慧在本书中得到了完美体现,书中总结了大量高效、优雅和奇妙的算法,并从数学角度剖析了其背后的原理 【读者评价】 “这是第一本宣称能讲解计算机算法隐晦细节的书,而且讲得还真不错。我知道的每一条技巧书里都提到了,而且还讲了好多好多我不知道的。不论是在开发程序库或编译器,还是在极力搜求优雅算法,此书都可谓天赐良册,应放在高德纳所著《计算机程序设计艺术》那套书旁边。本书第一版刊印后的10年间,它对我在Sun和Google的工作大有裨益,而第二版所添加新内容亦令我惊羡不已。” —— Joshua Bloch “初看本书书名时,我想,这是教人怎么入侵计算机系统的书吗?不太可能吧。嗯,那就肯定是一本编程小技巧的集锦。看了之后发现,没错,这就是一本编程秘籍,然而却是一本包罗万象的秘籍。第二版新增了两个大主题,并用数十个小技巧丰富了本书内容,其中有个小绝招是如何在不溢出的情况下求两数均值,我写二分查找算法时直接就把这条拿来用了。这真是本令算法爱好者开怀畅读的书啊!” —— Guy Steele 【内容简介】 在本书中,作者给我们带来了一大批极为诱人的知识,其中包括各种节省程序运行时间的技巧、算法与窍门。学习了这些技术,程序员就可写出优雅高效的软件,同时还能洞悉其中原理。这些技术极为实用,而且其问题本身又非常有趣,有时甚至像猜谜解谜一般,需要奇思妙想才行。简而言之,软件开发者看到这些改进程序效率的妙计之后,定然大喜。 本书较第1版增补了大量内容 新增了循环冗余校验(CRC)一章,其中讲解了常用的CRC-32校验码 新增了纠错码(ECC)一章,其中讲解了汉明码 详解了除数为常数的整数除法,增补了仅含移位操作和加法操作的算法 不计算商而直接求余数 扩充了与种群计数和前导0计数有关的知识 数组种群计数 执行压缩与扩展操作的新算法 LRU算法 浮点数与整数互化 估算浮点数的平方根倒数 一系列离散函数图像 各章均配有习题与参考答案
  • MATLAB数值计算

    作者:莫勒

    《MATLAB数值计算》是关于数值方法、MATLAB软件和工程计算的教材,着重介绍数学软件的熟练使用及其内在的高效率算法。主要内容包括:MATLAB介绍、线性方程组、插值、方程求根、最小二乘法、数值积分、常微分方程、傅里叶分析、随机数、特征值与奇异值、偏微分方程。《MATLAB数值计算》配备大量MATLAB例子源代码及习题,其中涉及密码学、Google网页分级、大气科学和图像处理等前沿问题,可以帮助读者快速掌握数学函数的正确使用及MATLAB编程技巧。
  • 程序员的数学思维修炼(趣味解读)

    作者:周颖

    本书是一本专门为程序员而写的数学书,介绍了程序设计中常用的数学知识。本书门槛不高,不需要读者精通很多高深的数学知识,只需要读者具备基本的四则运算、乘方等数学基础知识和日常生活中的基本逻辑判断能力即可。本书拒绝枯燥乏味的讲解,而是代之以轻松活泼的风格。书中列举了大量读者都很熟悉,而且非常有趣的数学实例,并结合程序设计的思维和算法加以剖析,可以训练读者的数学思维能力和程序设计能力,进而拓宽读者的视野,增强职场竞争力。 本书共11章,分别介绍了数据的表示、神奇的素数、递归、排列组合、用余数进行数据分组、概率、复利、数理逻辑、推理、几何图形构造、统筹规划等程序设计中常用的数学知识,从而引导读者深入理解编程中的数学方法和思路。本书包含的实例有结绳记事、孪生素数、梅森素数、哥德巴赫猜想、阶乘、汉诺塔、斐波那契数列、乘法原理、加法原理、字符编码、密码长度、日历中的数学、心灵感应魔术、约瑟夫环、智叟分牛、百枚钱币鼓士气、庄家的胜率、中奖概率、用概率方法求π值、复利的威力、对折纸张、舍罕王的赏赐、三段论、选言推理、假言推理、关系推理、花盆摆放、残缺棋盘、丢失的线条、田忌赛马、背包问题等。 本书适合广大程序设计人员及数学爱好者阅读,尤其适合有一定程序设计经验,但还需要进一步加深对程序设计理解的人员阅读。本书对IT求职人员、信息学竞赛和大学生程序设计竞赛等参赛学员也有很好的参考价值。
  • LaTeX入门

    作者:刘海洋

    LaTeX 已经成为国际上数学、物理、计算机等科技领域专业排版的实际标准,其他领域(化学、生物、工程、语言学等)也有大量用户。本书内容取材广泛,涵盖了正文组织、自动化工具、数学公式、图表制作、幻灯片演示、错误处理等方面。考虑到LaTeX 也是不断进化的,本书从数以千计的LaTeX 工具宏包中进行甄选,选择较新而且实用的版本来讲解排版技巧。 为了方便读者的学习,本书给出了大量的实例和一定量的习题,并且还提供了案例代码。书中的示例大部分来自作者多年的实际排版案例,读者不断练习,肯定能掌握LaTeX 的排版技能。 本书适合数学、物理、计算机、化学、生物、工程等专业的学生、工程师和教师阅读,也适合中学数学教师。此外,本书还适合对LaTeX 排版有兴趣的人员。
  • 离散数学及其应用(原书第6版)

    作者:[美] Kenneth H. Rosen

    本书是介绍离散数学理论和方法的经典教材,已经成为采用率最高的离散数学教材,仅在美国就被600多所高校用作教材,获得了极大的成功。中文版也已被国内大学广泛采用为教材。第6版在前五版的基础上做了大量的改进,使其成为更有效的教学工具。. 本书可作为1至2个学期的离散数学课入门教材,适用于数学,计算机科学。计算机工程.信息技术等专业的学生。 第6版的特点 •易入门:实践证明本书对初学者来说易读易懂。 •灵活:本教材为灵活使用做了精心设计,各章对其前面内容的依赖降到最小。 •写作风格:直接和实用。 •数学严密性和准确性:书中所有定义和定理的陈述都十分详细,以确保语言的准确性和数学所需的严密性。 •实例:书中有750多个实例,用于阐明概念,联系不同内容,并引入各种应用。 •应用:书中叙述的应用展示了离散数学在解决现实问题中的使用价值,涉及的应用领域包括计算机科学。数据网络、心理学,化学,工程。语言学、生物学、商业和互联网等。.. •算法:离散数学的结论常常要用算法来表示,因此本书每一章都介绍了一些关键算法。这些算法既可以用文字叙述,也可以用更易于理解的结构化伪码来叙述。附录a.3对伪码作了描述和规范。本书对所有算法的计算复杂性也都给出了初步的分析。 •历史资料:本书对许多主题的背景作了简要介绍,并以脚注的形式给出了65位对离散数学做出过重要贡献的数学家和计算机科学家的简短传记。 •关键术语和结论:每一章后面都列出了本章的关键术语和结论。 •丰富的练习、复习题和补充练习:新版增加了400多道练习,使全书的总练习数达到3800多道。本书不仅提供了足够多的简单习题用于练习基本技巧,还提供了大量的中等难度的练习和许多有挑战性的练习,以满足不同层次学生的学习需求。同时,每章最后都有一组复习题和一组丰富多样的补充练习。 •计算机课题:每一章后面还有一组计算机课题,大约有150个这样的题目,把学生已经学到的计算和离散数学的内容结合在一起。 •计算和研究:每一章的结论部分都有一组计算和研究性问题,为学生提供了通过计算发现新事实或新思想的机会。 •写作题目:每一章后面都有一组应该书面完成的题目。要完成这类题目,学生需要查阅参考文献,把数学概念和书面写作的过程结合在一起,以帮助学生研究和思考正文中没有深入探讨的思想,便于其未来的学习和研究。
  • 程序员的数学2

    作者:平冈和幸,堀玄

    本书沿袭《程序员的数学》平易近人的风格,用通俗的语言和具体的图表深入讲解程序员必须掌握的各类概率统计知识,例证丰富,讲解明晰,且提供了大量扩展内容,引导读者进一步深入学习。 本书涉及随机变量、贝叶斯公式、离散值和连续值的概率分布、协方差矩阵、多元正态分布、估计与检验理论、伪随机数以及概率论的各类应用,适合程序设计人员与数学爱好者阅读,也可作为高中或大学非数学专业学生的概率论入门读物。
  • 高等应用数学问题的MATLAB求解

    作者:薛定宇,陈阳泉

    薛定宇和陈阳泉编著的《高等应用数学问题的MATLAB求解》首先介绍了MATLAB语言程序设计的基本内容,在此基础上系统介绍了各个应用数学领域的问题求解,如基于MATLAB的微积分问题、线性代数问题的计算机求解、积分变换和复变函数问题、非线性方程与最优化问题、常微分方程与偏微分方程问题、数据插值与函数逼近问题、概率论与数理统计问题的解析解和数值解法等,还介绍了较新的非传统方法,如模糊逻辑与模糊推理、神经网络、遗传算法、小波分析、粗糙集及分数阶微积分学等领域。 《高等应用数学问题的MATLAB求解》可作为高等学校理工科各专业本科生和研究生学习计算机数学语言的教材和参考书,也可供科技工作者、教师学习和应用MATLAB语言解决实际数学问题时参考,还可作为读者查询某数学问题求解方法的手册。
  • 统计思维

    作者:Allen B.Downey

    代码跑出来的概率统计问题; 程序员的概率统计开心辞典; 开放数据集,全代码攻略。 现实工作中,人们常被要求用数据说话。可是,数据自己是不能说话的,只有对它进行可靠分析和深入挖掘才能找到有价值的信息。概率统计是数据分析的通用语言,是大数据时代预测未来的根基。 站在时代浪尖上的程序员只有具备统计思维才能掌握数据分析的必杀技。本书正是一本概率统计方面的入门图书,但视角极为独特,折射出大数据浪潮的别样风景。作者将基本的概率统计知识融入Python编程,告诉你如何借助编写程序,用计算而非数学的方式实现统计分析。一个趣味实例贯穿全书,生动地讲解了数据分析的全过程:从采集数据和生成统计量,到识别模式和检验假设。一册在手,让你轻松掌握分布、概率论、可视化以及其他工具和概念。  编写测试代码深入理解概率论和统计学  运行实验检验统计行为特征,如生成服从各种分布的样本  通过模拟理解数学上艰涩的概念  学习贝叶斯估计等实用内容  用Python导入各种来源的数据  运用统计推断解决真实数据问题 《统计思维:程序员数学之概率统计》是一本以全新视角讲解概率统计的入门图书。抛开经典的数学分析,Downey 手把手教你用编程理解统计学。概率、分布、假设检验、贝叶斯估计、相关性等,每个主题都充满趣味性,经编程解释后变得更为清晰易懂。 本书研究数据主要来源于美国全国家庭成长调查(NSFG)与行为风险因素监测系统(BRFSS),数据源及解决方案的相关代码全部开放,具体章节列出了大量学习和进阶资料,方便读者参考。 Allen B. Downey是富兰克林欧林工程学院的计算机科学副教授,曾执教于韦尔斯利学院、科尔比学院和加州大学伯克利分校。他先后获麻省理工学院计算机科学硕士学位和加州大学伯克利分校计算机科学博士学位。Downey已出版十余本技术书,内容涉及Java、Python、C++、概率统计等,深受专业读者喜爱。他的最新Think系列书还有Think Complexity: Complexity Science and Computational Modeling、Think Python。
  • Python语言入门

    作者:[美] Mark Lutz,David

    书中描述了Python程序的基本构件:类型、操作符、语句、函数、模块、类以及异常,此外还介绍了更多高级主题,包括复杂的实例,最后讲述了如何使用Python定制库来创建大型程序。
  • The Art of UNIX Programming

    作者:Eric S. Raymond

    Writing better software: 30 years of UNIX development wisdom In this book, five years in the making, the author encapsulates three decades of unwritten, hard-won software engineering wisdom. Raymond brings together for the first time the philosophy, design patterns, tools, culture, and traditions that make UNIX home to the world's best and most innovative software, and shows how these are carried forward in Linux and today's open-source movement. Using examples from leading open-source projects, he shows UNIX and Linux programmers how to apply this wisdom in building software that's more elegant, more portable, more reusable, and longer-lived.
  • 人工智能

    作者:Stuart J. Russell,Pe

    《人工智能:一种现代的方法(第3版)(影印版)》最权威、最经典的人工智能教材,已被全世界100多个国家的1200多所大学用作教材。《人工智能:一种现代的方法(第3版)(影印版)》的最新版全面而系统地介绍了人工智能的理论和实践,阐述了人工智能领域的核心内容,并深入介绍了各个主要的研究方向。全书仍分为八大部分:第一部分“人工智能”,第二部分“问题求解”,第三部分“知识与推理”,第四部分“规划”,第五部分“不确定知识与推理”,第六部分“学习”,第七部分“通信、感知与行动”,第八部分“结论”。《人工智能:一种现代的方法(第3版)(影印版)》既详细介绍了人工智能的基本概念、思想和算法,还描述了其各个研究方向最前沿的进展,同时收集整理了详实的历史文献与事件。另外,《人工智能:一种现代的方法(第3版)(影印版)》的配套网址为教师和学生提供了大量教学和学习资料。 《人工智能:一种现代的方法(第3版)(影印版)》适合于不同层次和领域的研究人员及学生,是高等院校本科生和研究生人工智能课的首选教材,也是相关领域的科研与工程技术人员的重要参考书。
  • 锋利的jQuery

    作者:单东林,张晓菲,魏然

    《锋利的jQuery(第2版)》循序渐进地对jQuery的各种函数和方法调用进行了介绍,读者可以系统地掌握jQuery的选择器、DOM操作、事件和动画、AJAX应用、插件、jQuery Mobile、jQuery各个版本变化、jQuery性能优化和技巧等知识点,并结合每个章节后面的案例演示进行练习,达到掌握核心知识点的目的。 为使读者更好地进行开发实践,《锋利的jQuery(第2版)》的第8章将前7章讲解的知识点和效果进行了整合,打造出一个非常有个性的网站,并从案例研究、网站材料、网站结构、网站样式和网站脚本等方面指导读者参与到项目建设中来。
  • CJKV Information Processing

    作者:Ken Lunde

    CJKV Information Processing, the unsurpassed source of information on processing text in Chinese, Japanese, Korean, and Vietnamese, has been thoroughly updated to provide web and application developers with the latest techniques and tools for disseminating information directly to audiences in East Asia. This second edition reflects the considerable impact that Unicode, XML, OpenType, and other modern technologies have had on East Asian text processing in recent years. Full Description First published a decade ago, CJKV Information Processing quickly became the unsurpassed source of information on processing text in Chinese, Japanese, Korean, and Vietnamese. It has now been thoroughly updated to provide web and application developers with the latest techniques and tools for disseminating information directly to audiences in East Asia. This second edition reflects the considerable impact that Unicode, XML, OpenType, and newer operating systems such as Windows XP, Vista, Mac OS X, and Linux have had on East Asian text processing in recent years. Written by its original author, Ken Lunde, a Senior Computer Scientist in CJKV Type Development at Adobe Systems, this book will help you: Learn about CJKV writing systems and scripts, and their transliteration methods Explore trends and developments in character sets and encodings, particularly Unicode Examine the world of typography, specifically how CJKV text is laid out on a page Learn information-processing techniques, such as code conversion algorithms and how to apply them using different programming languages Process CJKV text using different platforms, text editors, and word processors Become more informed about CJKV dictionaries, dictionary software, and machine translation software and services Manage CJKV content and presentation when publishing in print or for the Web Internationalizing and localizing applications is paramount in today's global market -- especially for audiences in East Asia, the fastest-growing segment of the computing world. CJKV Information Processing will help you understand how to develop web and other applications effectively in a field that many find difficult to master.
  • 可爱的Python

    作者:哲思社区

    本书的内容主要来自CPyUG社区的邮件列表,由Python的行者根据自身经验组织而成,是为从来没有听说过Python的其他语言程序员准备的一份实用的导学性质的书。笔者试图将优化后的学习体验,通过故事的方式传达给读者,同时也分享了蟒样(Pythonic式)的知识获取技巧,而且希望将最常用的代码和思路,通过作弊条(Cheat Sheet,提示表单)的形式分享给有初步基础的Python 用户,来帮助大家多快好省地完成功能。 本书期望成为学习使用Python的同好们的沟通话题,引发进一步的学习/应用/创造/推广,就是笔者的追求!因为Python语言本身是种非常灵活的动态脚本语言,同一个目标可以使用多种方式完成,笔者为了让拥有各种不同技术背景的读者可以快速无碍地理解,选择了一种实际上可能比较笨拙的方式来实现功能,聪明的读者一定可以看出来的,那么请会心一笑,因为您已经和我们心灵相通了!
  • Programming Interactivity

    作者:Joshua Noble

    Make cool stuff. If you're a designer or artist without a lot of programming experience, this book will teach you to work with 2D and 3D graphics, sound, physical interaction, and electronic circuitry to create all sorts of interesting and compelling experiences -- online and off. Programming Interactivity explains programming and electrical engineering basics, and introduces three freely available tools created specifically for artists and designers: *Processing, a Java-based programming language and environment for building projects on the desktop, Web, or mobile phones *Arduino, a system that integrates a microcomputer prototyping board, IDE, and programming language for creating your own hardware and controls *OpenFrameworks, a coding framework simplified for designers and artists, using the powerful C++ programming language BTW, you don't have to wait until you finish the book to actually make something. You'll get working code samples you can use right away, along with the background and technical information you need to design, program, build, and troubleshoot your own projects. The cutting edge design techniques and discussions with leading artists and designers will give you the tools and inspiration to let your imagination take flight.
  • Learning Processing

    作者:Daniel Shiffman

    Book Description Teaches graphic artists the fundamentals of computer programming within a visual playground! Product Description This book introduces programming concepts in the context of computer graphics and visual art, in a more accessible format than traditional programming textbooks. It uses the open source programming language Processing as the basis for all discussion and examples, focusing on the fundamentals such as variables, conditionals, loops, arrays, and objects in a highly visual manner. The book will also introduce advanced topics such as data mining, networking, image processing, computer vision, and 3D graphics. It will also introduce using Processing for "tangible media"; communicating with microcontrollers to interact with the physical environment. Processing is built on top of the programming language Java, and so is an excellent introduction to Java and object-oriented programming, and will help prepare the student for study of more advanced object-oriented languages such as Java or C++. * Introduces the concepts of computer programming using the programming language Processing developed at the MIT Media Lab * Written for the interactive media designer without any programming experience * Includes source code for many examples, illustrated with examples of what can be done with Processing
  • D is for Digital

    作者:Brian W Kernighan

    This book explains how today's computing and communications world operates, from hardware through software to the Internet and the web. It includes enough detail that you can understand how these systems work, no matter what your technical background. The social, political and legal issues that new technology creates are discussed as well, so you can understand the difficult issues we face and appreciate the tradeoffs that have to be made to resolve them.