關於隨機數的產生!!

利用VB產生隨機數的一個例子:

Private Sub Command1_Click()
  Dim i As Integer '作爲計數器
  For i = 1 To 20
    Randomize
      a(i) = (1000 - 100 + 1) * Rnd + 100 '產生隨機數
  Next i
  Dim str1 As String
  Dim m As Integer
  For m = 1 To 20
     str1 = str1 + Str(a(m))
  Next m
  Text1.Text = str1
End Sub
Private Sub Command2_Click()
  Dim i As Integer
  For i = 1 To 20
     If a(i) Mod 2 = 0 Then
        a(i) = 0
     End If
  Next i
  '對產生的隨機數進行排序
  Dim j As Integer, k As Integer
  Dim temp As Integer
  For j = 1 To 20
    For k = 1 To 20 - j
       If a(k) > a(k + 1) Then
          temp = a(k)
          a(k) = a(k + 1)
          a(k + 1) = temp
       End If
    Next k
  Next j
   Dim str2 As String
  For i = 1 To 20
    If a(i) = 0 Then
     GoTo Next1
    Else
      str2 = str2 + Str(a(i))
    End If
Next1:
  Next i
  Text2.Text = str2
End Sub

增加一個模塊:Global a(1 To 20) As Integer ,全局變量

效果:圖片

關於隨機數:

1.首先是在VB下產生隨機數,一般是以Value=int((upper- lower+1)*Rnd+lower),其中upper是上限,lower是下限,這樣其實是僞隨機數,既會產生相同的數據,再加上Randomize 語句既可以產生真正的隨機數。然而這個方法並非是最好的,在調試的時候產生的隨機數沒有變化。

2.Randomize
      a(i) = (1000 - 100 + 1) * Rnd + 100 '產生隨機數
使用這個方法即可產生真正的隨機數,並且保證在調試的時候不產生一樣的數據!

3.在C++裏面則使用這個函數產生隨機數:value=rand()%100;產生0到100的數據,不包括 100,這個也不會達到理想狀態,我們需要增加一個種子,srand(time(0));這樣纔不會每次都產生一樣的數據,(包含#include <ctime>頭文件)。

4.關於time_t time(0):time_t被定義爲長整型,它返回從1970年1月1日零時零分零秒到目前爲止所經過的時間,單位爲秒。

 這些只是簡單的隨機數介紹!關於隨機數的還有更多內容!那就Google吧!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章