<samp id="uu9tx"></samp>
        <samp id="uu9tx"><tr id="uu9tx"><nav id="uu9tx"></nav></tr></samp>
        <delect id="uu9tx"><legend id="uu9tx"><meter id="uu9tx"></meter></legend></delect>
                <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp><nav id="uu9tx"></nav>
                <samp id="uu9tx"></samp>
                  <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp>
                  江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
                  VB常用算法(九)數學應用-

                  VB常用算法(九)數學應用- -

                  曹蘇群  http://caosuqun.bokee.com

                  Tag數學應用    算法                                          

                  1、算法說明

                  1)        初等數學

                           遞推法

                  又稱為“迭代法”,其基本思想是把一個復雜的計算過程轉化為簡單過程的多次重復。每次重復都在舊值的基礎上遞推出新值,并由新值代替舊值。

                  問題:猴子吃桃子

                  小猴子有若干桃子,第一天吃掉一半多一個;第二天吃掉剩下的一半多一個…..;如此,到第七天早上要吃時,只剩下一個桃子。問小猴子一開始共有多少桃子?

                  分析:可以最后一天桃子數推出倒數第二天的桃子數;再從倒數第二天推出倒數第三天桃子數………..

                  設第n天桃子數為xn,前一天桃子數是:xn1,則有關系:

                  xnxn1/2-1

                           程序如下:

                  Private Sub Command1_Click()

                     Dim n%, i%

                     x = 1   '第七天桃子數

                     Print "第七天桃子數: 1"

                     For i = 6 To 1 Step -1

                          x = (x + 1) * 2

                          Print "" & i & "天桃子數:" & x & ""

                     Next i

                  End Sub

                   

                           窮舉法

                  又稱枚舉法,即將所有可能情況一一測試,判斷是否滿足條件,一般用循環實現。

                  問題:百元買雞問題。

                  假定小雞每只5角;公雞每只2元;母雞每只3元,F在有100元,要求買100只雞,編程列出所有可能的購雞方案。

                  分析:

                  設母雞、公雞、小雞分別x、y、z只,則有:

                  xyz100

                  3x2y0.5z100

                           程序一:

                                    Private Sub Command1_Click()

                                          Dim x%, y%, z%

                                          For x = 0 To 100

                                                For y = 0 To 100

                                                     For z = 0 To 100

                                                           If x + y + z = 100 And 3 * x + 2 * y + 0.5 * z = 100 Then

                                                                 Print x, y, z

                                                           End If

                                                     Next z

                                                Next y

                                          Next x

                                    End Sub

                   

                   

                           程序二(優化)

                                    Private Sub Command1_Click()

                                          Dim x%, y%

                                          For x = 0 To 33

                                                For y = 0 To 50

                                                     If 3 * x + 2 * y + 0.5 * (100 - x - y) = 100 Then

                                                          Print x, y, 100 - x - y

                                                     End If

                                                Next y

                                          Next x

                                    End Sub

                   

                  2)        高等數學

                           求積分

                          近似計算積分:s=13(x3+2x+5)dx

                   

                           代碼如下:

                               Public Function f(ByVal x!) '被積函數

                               f = x * (x * x + 2) + 5

                               End Function

                   

                               Public Function trapez(ByVal a!, ByVal b!, ByVal n%) As Single

                                        'b、a分別為積分上下限,n為等分數

                                     Dim sum!, h!, x!

                                     h = (b - a) / n

                                     sum = (f(a) + f(b)) / 2

                                     For i = 1 To n - 1

                                           x = a + i * h

                                           sum = sum + f(x)

                                     Next i

                                     trapez = sum * h

                               End Function

                      調用:

                               Private Sub Command1_Click()

                           Print trapez(1, 3, 30)

                               End Sub

                   

                           數論綜合題

                           此類題目比較廣泛,必須給以足夠重視。

                           歷年題目有:平方數、零巧數、擬互滿數、回文數、酉完數、完數、幸運數、逆序數以及無暇素數、超級素數、因子和等。

                          

                  2、實戰練習

                  1)        補充代碼(2002秋二(10))

                           找出由兩個不同數字組成的平方數,并將結果按圖中的格式顯示在列表框 List1中。

                  Option Explicit

                                    Private Sub Command1_Click()

                                             Dim I As Long, N As Long

                                             For I = 11 To 300

                                                  1 

                                                If Verify(N) Then

                                                       2 

                                                End If

                                             Next I

                                    End Sub

                   

                           Private Function Verify(  3  ) As Boolean

                                             Dim A(0 To 9) As Integer, I As Integer, Js As Integer

                                             Do While N <> 0

                                                  4 

                                                N = N \ 10

                                             Loop

                                             For I = 0 To 9

                                                Js = Js + A(I)

                                             Next I

                                               5 

                                    End Function

                   

                  1)        編程題(2004秋上機試卷08

                           一個正整數被稱為奇妙平方數,如果此數的平方與它的逆序數的平方互為逆序數。例如,

                           12^2=144, 21^2=441,12 21 互逆 ,144 441 互逆 ,12 就是奇妙平方數。找出 1-300 以內所有的奇妙平方數。

                  亚洲欧美日韩国产一区二区三区_全亚洲免费一级黄片_国产一区二区三区不卡视频手机版_国产污三级网站在线观看