随笔分类 - 典型算法及应用
有一位著名的软件设计专家讲得好——程序=“算法”+“数据结构”。虽然SOP(结构化编程)已经离我们越来越远,取而代之是OOP(面向对象编程);结构思想上有很大变化,但是每一个函数内部还是包含算法。因此研究算法对于程序设计有很大的益处。
求最大公约数与最小公倍数的算法
摘要:(一)最大公约数:所谓“最大公约数”是指两个数(A和B)都能够被C整除,求这个C的最大值问题。在欧几里德的《几何原本》中记载着辗转相除的方法来解决此类问题。此问题的大致思路是:假设存在A和B两个正整数(且A>B),那么令R= A % B,R和B分别取代原来的B和A,重复取余工作,直到R=0(表明那个A就是最大公约数)。其一般算法(伪代码Pseudo Code)如下(A...
阅读全文
典型算法及应用——“递归法”探究
摘要:在起始条件已知的情况下,解决一类重复性问题的最佳方案莫过于使用程序设计的三大基本结构之一的“循环”结构(分为“有限次”和“无限次”循环两种情况)。然而现实生活中也存在这样一类问题——起始条件不明确,但结尾却已知;或者问题自身嵌套着自身。在这种情况下我们将采用反向思维,从结尾条件开始往前推演,直到把起始条...
阅读全文
典型算法及应用——关于产生不重复随机数的算法
摘要:我们不得不承认这样一个事实:那就是尽管在高级程序语言设计中包含了类似于Random产生随机数之类的方法,但是它产生的随机数并不能满足我们日常的需要,因为它可能重复——设想一下,电子化抽取试题的原理就是根据预定产生的题目数量产生果敢若干个对应的随机数,然后将匹配的试题抽取、排序并打印在试卷上。但是在同一次考试时候不允许同一题目出现重复(尽管这样的概率很低,但是我们绝对不允许这样做!)。所以避免产生重...
阅读全文
浙公网安备 33010602011771号