【Access小品】抽丝剥茧--算法及算法实现概述-煮江品茶
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-教程


【Access小品】抽丝剥茧--算法及算法实现概述

发表时间:2015/7/21 11:42:05 评论(0) 浏览(6624)  评论 | 加入收藏 | 复制
   
摘 要:【Access小品】抽丝剥茧 -- 算法及算法实现概述
正 文:
  版友lingjiang同志问了一个极其无聊的问题,大意是要随机产生两组结果相等且小于等于20的自然数加减法算式。说其无聊,是因为这个问题除了可以交小朋友算术外,没什么其他的大用。

  问题虽然无聊,但却可以用来概述一下算法及算法实现方面的问题。什么是算法?不知道权威的定义是什么,但可以通俗的理解问题实现某些功能的计算过程和计算方法,也就是说算法包括实现过程和实现方法。就本例来说,实现“随机产生两组结果相等且小于等于20的自然数加减法算式”这个功能,所需要的过程和方法就是算法。

  算法的描述可以是多样性的,你可以用几段话来描述,也可以用一组表来描述,还可以用一个流程图来描述。根据算法的复杂程度可以用各种手段来描述算法。描述的目的只有一个,那就是能让人清晰的理解算法。对于本例,我们可以这样来描述算法:

  第一步:随机产生一个加减号;
  第二步:根据加减号确定和(或差)的上下限,并由此随机产生一个和(或差);
  第三步:根据加减号以及和(或差),确定被加数(或被减数)的上下限,并由此随机产生一个被加数(或被减数);
  第四步:根据加减号、和(或差)以及被加数(或被减数)计算加数(或减数)。


  需要注意的是,对于一个功能来说,其算法不一定是唯一的。也就是说,实现同样的功能,会存在不同的算法,理解这一点十分重要。由此,你还可以猜想到,即使是相同的算法,其实现也不是唯一的。这就像读《王子复仇记》,一千个人会有一千个哈莫雷特。

  所谓算法的实现,就是用特定的语言特定的工具,写出一组代码来实现算法所描述的计算过程,并得到一个功能的实现。所以算法相对来说是抽象的,算法实现则是具象的。至于此例的实现在此不赘述,F11进入VB编辑试图便一目了然了。

  其实以上的算法并不严谨,这种不严谨存在于计算第二组算式中,当和为20和差为1时,第二组算式的运算符与第一组算式运算符相反时将会出错。这个问题的避免需要进一步增加算法的复杂性,至于怎么个搞法由同志们自己去想。

  版友杨雪同志最近对我所写的示例中缺少注释提出了批评,这个错误其实很难改正的。原因在于注释多少合适,并没有确定的衡量标准。太少了看不懂,太多了又杂乱。不过我还是接受杨雪同志的意见,尽可能的加些注释,以便初学者阅读。至于此例中注释的多寡是否恰当就不得而知了。


示例:点击下载此附件


视图:



Access软件网交流QQ群(群号:198465573)
 
 相关文章
函数-----农历的算法  【UMVsoft整理  2008/4/23】
按照一年360天的算法返回两日期间相差的天数  【徐军勇  2009/1/19】
最精简的3-9阶幻方算法示例,源码开放  【似水流年  2011/8/18】
【access小品】超额累进算法详解  【煮江品茶  2012/4/8】
最短路径算法源码  【ihcn  2012/8/21】
【Access小品】灵机一动-- 一个有趣的算法  【煮江品茶  2015/2/6】
常见问答
技术分类
相关资源
文章搜索
关于作者

煮江品茶

文章分类

文章存档

友情链接