
算法
文章平均质量分 83
YoungGeeker
在这里,一起探索少年极客的世界。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
认识Ruby
Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的 Ruby 语言替代品。原创 2022-10-30 21:45:36 · 390 阅读 · 0 评论 -
计算机软件的版本分类
我们广义上对测试有着三个传统的称呼:Alpha(α,阿尔法)、Beta(β,贝塔)和Gamma(γ,伽玛),用来标识测试的阶段与范围。Alpha 指的是内测,即现在说的 CB,即开发团队内部测试的版本或者有限用户的体验测试版本。Beta 指的是公测,即针对所有用户公开的测试版本。而做过一些修改,成为正式发布的候选版本时(现在叫做 RC - Release Candidate),叫做 Gamma。原创 2022-10-27 17:47:51 · 1273 阅读 · 0 评论 -
认识汇编语言
汇编语言, 即第二代计算机语言,用一些容易理解和记忆的缩写单词来代替一些特定的指令。原创 2022-10-23 14:18:38 · 5825 阅读 · 0 评论 -
1024程序员节主题征文 | 统一码的编码和实现
统一码(Unicode),也叫万国码、单一码,是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。原创 2022-10-23 13:55:28 · 799 阅读 · 0 评论 -
1024程序员节主题征文 | ASCII码简介与对照表
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。原创 2022-10-23 13:28:12 · 311 阅读 · 0 评论 -
1024程序员节主题征文 | 35种语言输出1024
为了给1024献礼,我做出了用35种编程语言输出的1024。希望大家喜欢。原创 2022-10-22 11:03:23 · 522 阅读 · 0 评论 -
圆周率 π 小数点后的前10000位
以下是本人整理的圆周率 π 小数点后的前10000位,供大家参考。原创 2022-10-06 19:17:19 · 14506 阅读 · 0 评论 -
CSP-JS全套认证须知
CCF CSP-JS 是CCF CSP非专业级别的软件能力认证(简称CCF CSP-JS),分两个级别,分别为CSP-J(入门组,Junior)和CSP-S(提高组,Senior),均涉及算法和编程。任何人都可以报名参加。CSP-JS赛程分为初赛(笔试)和复赛(机试),即CSP-J1/S1与CSP-J2/S2。参赛者必须先参加第一轮,达到一定的分数者方可参加第二轮。CSP-JS自2019年起举办,有说法认为,CSP取代了NOIP,但官方否认了这一说法。原创 2022-10-05 18:20:39 · 3935 阅读 · 0 评论 -
算法 | 算法是什么?深入精讲
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。原创 2022-09-25 14:18:50 · 628 阅读 · 0 评论 -
Java证明威尔逊定理
在初等数论中,威尔逊定理给出了判定一个自然数是否为素数的充分必要条件。即:当且仅当 $p$ 为素数时:$(p - 1) ! ≡ -1 (mod p)$ ,但是由于阶乘是呈爆炸增长的,其结论对于实际操作意义不大,但借助计算机的运算能力有广泛的应用,也可以辅助数学推导。原创 2022-09-23 19:40:30 · 426 阅读 · 0 评论 -
浅谈面向过程程序设计方法
面向过程(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。简写为POP。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。原创 2022-09-20 19:45:57 · 733 阅读 · 0 评论 -
C++证明哥德巴赫猜想
哥德巴赫 1742 年在给欧拉的信中提出了以下猜想:任一大于2的整数都可写成三个质数之和。但是哥德巴赫自己无法证明它,于是就写信请教赫赫有名的大数学家欧拉帮忙证明,但是一直到死,欧拉也无法证明。原创 2022-09-19 20:02:43 · 2664 阅读 · 0 评论 -
浅谈面向对象程序设计方法
面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。原创 2022-09-16 20:09:45 · 3621 阅读 · 0 评论 -
OpenGL:开放图形库
OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来绘制从简单的图形比特到复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虚拟现实、科学可视化程序和电子游戏开发。原创 2022-09-16 18:22:33 · 1069 阅读 · 0 评论 -
世界第一台通用计算机:ENIAC
ENIAC,全称为Electronic Numerical Integrator And Computer,即电子数字积分计算机。ENIAC是继ABC(阿塔纳索夫-贝瑞计算机)之后的第二台电子计算机和第一台通用计算机。它是完全的电子计算机,能够重新编程,解决各种计算问题。它于1946年2月14日在美国宣告诞生。 承担开发任务的人员由科学家约翰·冯·诺依曼和“莫尔小组”的工程师埃克特、莫希利、戈尔斯坦以及华人科学家朱传榘组成。总工程师埃克特在当时年仅25岁。原创 2022-09-02 20:57:36 · 65033 阅读 · 0 评论 -
C++ STL中的 map 容器
map 是 STL 的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在 map 中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。...原创 2022-08-29 19:01:04 · 440 阅读 · 0 评论 -
C++ iostream、ostream、istream等标准库都是什么?看完这篇就知道了
我们在写C++代码的时候,总会用到 `iostream` 库,这是C++的标准库,几乎每个程序都会用到它(有一些人则会用 `cstdio` )。我们细扒出来 `iostream` 库的源码,却发现 `iostream` 库里面几乎都是 `include` 、预处理、`extern` 、`namespace` 这些东西,其中还有引入 `ios` 、`ostream` 、`istream` 、`streambuf` 等头文件。这又是什么呢?本文就为大家揭秘一下。首先先说最常用的 `iostream` 库。...原创 2022-08-28 19:04:46 · 12197 阅读 · 0 评论 -
DP(动态规划)是什么?
在多阶段决策问题中,各个阶段采取的决策,一般来说是与时间有关的,决策依赖于当前状态,又随即引起状态的转移,一个决策序列就是在变化的状态中产生出来的,故有“动态”的含义,称这种解决多阶段决策最优化的过程为动态规划方法。此外,也有阶段变量是连续的情形。简而言之,一个最优化策略的子策略总是最优的。多阶段决策问题中,各个阶段采取的决策,一般来说是与时间有关的,决策依赖于当前状态,又随即引起状态的转移,一个决策序列就是在变化的状态中产生出来的,故有“动态”的含义,称这种解决多阶段决策最优化问题的方法为动态规划方法。原创 2022-08-24 10:37:53 · 4507 阅读 · 0 评论 -
刷题指南:关于输出内容的程序的小窍门
很多人学习编程,入门时总会见到许多输出的题目,如洛谷的《P1000 超级玛丽游戏》,就是要你输出一大堆内容。一般人会疯狂地加 printf 、cout 、System.out.println 、print ,打到手废,脑子晕,很高兴地点一下提交,却发现有一行弄错了,没有拿到满分,功亏一篑。其实根本不用这样。你可知道,有两种编程语言,只要把需要输出的内容放到代码里就可以输出,不用加任何东西!本文就带着大家了解一下这两种神级语言——HTML和PHP——到底是怎么工作的。原创 2022-08-22 12:11:22 · 315 阅读 · 0 评论 -
C++常用递归函数汇总
最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为 $(a, b)$ ,同样的,a,b,c的最大公约数记为 $(a, b, c)$ ,多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为 $[a, b]$ 。原创 2022-08-22 10:31:19 · 3269 阅读 · 0 评论 -
Bug战场:C++篇
朋友们,该打仗了!该考验你们处理Bug的时候了!原创 2022-08-19 16:33:05 · 797 阅读 · 9 评论 -
DFS和BFS的区别
很多人在看别人代码时,总会看到DFS、BFS这样的函数,那么它们又有什么区别呢?本文就向大家详细讲解一下。原创 2022-08-19 10:50:48 · 4882 阅读 · 0 评论 -
算法入门教程(七、迭代)
迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,在解决问题时总是重复利用一种方法。与迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。迭代法又分为精确迭代和近似迭代。“二分法”和“牛顿迭代法”属于近似迭代法,功能都比较类似。......原创 2022-08-13 11:30:57 · 2060 阅读 · 0 评论 -
算法入门教程(六、试探)
试探法也叫回溯法,试探法的处事方式比较委婉,它先暂时放弃关于问题规模大小的限制,并将问题的候选解按某种顺序逐一进行枚举和检验。当发现当前候选解不可能是正确的解时,就选择下一个候选解。如果当前候选解除了不满足问题规模要求外能够满足所有其他要求时,则继续扩大当前候选解的规模,并继续试探。如果当前候选解满足包括问题规模在内的所有要求时,该候选解就是问题的一个解。在试探算法中,放弃当前候选解,并继续寻找下一个候选解的过程称为回溯。扩大当前候选解的规模,并继续试探的过程称为向前试探。...原创 2022-08-11 13:38:33 · 1852 阅读 · 0 评论 -
算法入门教程(五、贪心)
贪心算法也被称为贪婪算法,它在求解问题时总想用在当前看来是最好方法来实现。这种算法思想不从整体最优上考虑问题,仅仅是在某种意义上的局部最优求解。虽然贪心算法并不能得到所有问题的整体最优解,但是面对范围相当广泛的许多问题时,能产生整体最优解或者是整体最优解的近似解。由此可见,贪心算法只是追求某个范围内的最优,可以称之为“温柔的贪婪”。...原创 2022-08-11 13:10:41 · 1407 阅读 · 0 评论 -
算法入门教程(四、分治)
具体做法是:先把这个问题分解成几个较小的子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成求整个大问题的解。如果这些子问题还是比较大,还可以继续再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。分治算法也采取了各个击破的方法,将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。只要求出子问题的解,就可得到原问题的解。最近,TOM 老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中。....原创 2022-08-09 19:57:37 · 1323 阅读 · 0 评论 -
算法入门教程(三、递推与递归)
与枚举算法思想相比,递推算法能够通过已知的某个条件,利用特定的关系得出中间推论,然后逐步递推,直到得到结果为止。这些函数是独立的功能,能够实现解决某个问题的具体功能,当需要时直接调用这个函数即可。宁宁同学在复习栈的基本概念时,想到了一个书上没有讲过的问题,而他自己无法给出答案,所以需要你的帮忙。在计算机编程应用中,递归算法对解决大多数问题是十分有效的,它能够使算法的描述变得简洁而且易于理解。栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表。经过操作可能得到的输出序列的总数。..原创 2022-08-08 19:00:48 · 2438 阅读 · 0 评论 -
算法入门教程(二、枚举)
在进行归纳推理时,如果逐个考察了某类事件的所有可能情况,因而得出一般结论,那么这个结论是可靠的,这种归纳方法叫作枚举法。枚举算法的思想是:将问题的所有可能的答案一一列举,然后根据条件判断此答案是否合适,保留合适的,丢弃不合适的。关于枚举算法的题还有很多,可以在洛谷上刷。本文由于代码有一些已经加了注释,所以就不在文章里说明了,如果不懂,欢迎在评论区留言。一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)。个数,表示每种配料所放的质量,按字典序排列。克,任意烤鸡的美味程度为所有配料质量之和。.原创 2022-08-07 14:16:59 · 1290 阅读 · 0 评论 -
算法入门教程(一、模拟)
模拟是对真实事物或者过程的虚拟。在编程时为了实现某个功能,可以用语言来模拟那个功能,模拟成功也就相应地表示编程成功。原创 2022-08-05 18:01:24 · 4642 阅读 · 0 评论