設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 3662|回復(fù): 6
打印 上一主題 下一主題

[模塊/函數(shù)] 【Access小品】抽絲剝繭 -- 算法及算法實現(xiàn)概述

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2015-7-21 11:38:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  版友lingjiang同志問了一個極其無聊的問題,大意是要隨機(jī)產(chǎn)生兩組結(jié)果相等且小于等于20的自然數(shù)加減法算式。說其無聊,是因為這個問題除了可以交小朋友算術(shù)外,沒什么其他的大用。

  問題雖然無聊,但卻可以用來概述一下算法及算法實現(xiàn)方面的問題。什么是算法?不知道權(quán)威的定義是什么,但可以通俗的理解問題實現(xiàn)某些功能的計算過程和計算方法,也就是說算法包括實現(xiàn)過程和實現(xiàn)方法。就本例來說,實現(xiàn)“隨機(jī)產(chǎn)生兩組結(jié)果相等且小于等于20的自然數(shù)加減法算式”這個功能,所需要的過程和方法就是算法。

  算法的描述可以是多樣性的,你可以用幾段話來描述,也可以用一組表來描述,還可以用一個流程圖來描述。根據(jù)算法的復(fù)雜程度可以用各種手段來描述算法。描述的目的只有一個,那就是能讓人清晰的理解算法。對于本例,我們可以這樣來描述算法:

  第一步:隨機(jī)產(chǎn)生一個加減號;
  第二步:根據(jù)加減號確定和(或差)的上下限,并由此隨機(jī)產(chǎn)生一個和(或差);
  第三步:根據(jù)加減號以及和(或差),確定被加數(shù)(或被減數(shù))的上下限,并由此隨機(jī)產(chǎn)生一個被加數(shù)(或被減數(shù));
  第四步:根據(jù)加減號、和(或差)以及被加數(shù)(或被減數(shù))計算加數(shù)(或減數(shù))。

  需要注意的是,對于一個功能來說,其算法不一定是唯一的。也就是說,實現(xiàn)同樣的功能,會存在不同的算法,理解這一點十分重要。由此,你還可以猜想到,即使是相同的算法,其實現(xiàn)也不是唯一的。這就像讀《王子復(fù)仇記》,一千個人會有一千個哈莫雷特。

  所謂算法的實現(xiàn),就是用特定的語言特定的工具,寫出一組代碼來實現(xiàn)算法所描述的計算過程,并得到一個功能的實現(xiàn)。所以算法相對來說是抽象的,算法實現(xiàn)則是具象的。至于此例的實現(xiàn)在此不贅述,F(xiàn)11進(jìn)入VB編輯試圖便一目了然了。

  其實以上的算法并不嚴(yán)謹(jǐn),這種不嚴(yán)謹(jǐn)存在于計算第二組算式中,當(dāng)和為20和差為1時,第二組算式的運(yùn)算符與第一組算式運(yùn)算符相反時將會出錯。這個問題的避免需要進(jìn)一步增加算法的復(fù)雜性,至于怎么個搞法由同志們自己去想。

  版友楊雪同志最近對我所寫的示例中缺少注釋提出了批評,這個錯誤其實很難改正的。原因在于注釋多少合適,并沒有確定的衡量標(biāo)準(zhǔn)。太少了看不懂,太多了又雜亂。不過我還是接受楊雪同志的意見,盡可能的加些注釋,以便初學(xué)者閱讀。至于此例中注釋的多寡是否恰當(dāng)就不得而知了。

示例:

視圖:





本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x

本帖被以下淘專輯推薦:

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖1 訂閱訂閱

點擊這里給我發(fā)消息

2#
發(fā)表于 2015-7-21 11:42:27 | 只看該作者
可以先在1~20兩個數(shù)的和:2~40,中間隨機(jī)取一個結(jié)果。
再利用這個結(jié)果找到它的求和組合,再隨機(jī)抽兩個組{:soso_e113:}
3#
發(fā)表于 2015-7-21 15:02:07 | 只看該作者
楊雪?妹子吧?沒印象
4#
 樓主| 發(fā)表于 2015-7-21 16:20:50 | 只看該作者

軟件網(wǎng)的版友。

點擊這里給我發(fā)消息

5#
發(fā)表于 2015-11-17 10:41:33 | 只看該作者
贊贊贊
回復(fù)

使用道具 舉報

6#
發(fā)表于 2016-8-20 08:40:20 | 只看該作者
良好的教育基礎(chǔ)
7#
發(fā)表于 2016-8-20 11:06:16 | 只看該作者
已經(jīng)下載學(xué)習(xí)
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機(jī)版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2025-7-16 18:21 , Processed in 0.104043 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表