在Access/Excel的VBA以及vb生成隨機(jī)數(shù)的方法 和 vb.net 隨機(jī)數(shù)生成方法有所不同,VBA/VB生成隨機(jī)數(shù)生成方法是使用函數(shù)Rnd,而在vb.net隨機(jī)數(shù)生成方法是 Random.Next()。vb.net生成隨機(jī)數(shù)變得更容易和方便,下對(duì)它們生成隨機(jī)數(shù)的方法進(jìn)行一個(gè)對(duì)比和分析
一、VBA/VB(Access/Excel/VB) 隨機(jī)數(shù)生成的方法 vb隨機(jī)數(shù)生成函數(shù)是 Rnd[(number)],number 參數(shù)為可選項(xiàng)。在調(diào)用 Rnd 生成隨機(jī)數(shù)之前,先使用 Randomize 初始化隨機(jī)數(shù)生成器來(lái)產(chǎn)生種子,該生成器是根據(jù)系統(tǒng)計(jì)時(shí)器來(lái)產(chǎn)生種子的。 1、生成100以內(nèi)的隨機(jī)數(shù) Randomize Int(Rnd() * 100)//生成 0 - 99 之間的隨機(jī)數(shù) Int(Rnd() * 101)//生成 0 - 100 之間的隨機(jī)數(shù)
2、生成指定范圍隨機(jī)數(shù) 由于 vb 沒有提供直接生成指定范圍隨機(jī)數(shù)的函數(shù),所以要把 Rnd 變通一下,方法如下: Int((上限 - 下限 + 1) * Rnd + 下限);
把它封裝成可直接調(diào)用的函數(shù)如下:
- Function GetRandom(under, over As Integer) As Integer
- If under < over Then
- temp = under;
- under = over;
- over = temp;
- End If
- Randomize
- GetRandom = Int((under - over + 1) * Rnd + over);
- End Function
復(fù)制代碼
調(diào)用方法: GetRandom(10, 100);//生成10到100的隨機(jī)數(shù)
二、vb.net生成隨機(jī)數(shù)的方法 1、方法:Random.Next(int minValue, int maxValue);
2、說(shuō)明: 若 minValue 和 maxValue 都沒有提供,則生成一個(gè) 0 - 2147483647 之間的隨機(jī)數(shù); 若 minValue 和 maxValue 只提供一個(gè),則生成一個(gè) 0 - maxValue 之間的隨機(jī)數(shù); 若 minValue 和 maxValue 兩個(gè)都提供,則生成一個(gè) minValue - maxValue 之間的隨機(jī)數(shù);
3、舉例 Dim ran = New System.Random() ran.Next()//生成 0 - 2147483647 之間的隨機(jī)數(shù) ran.Next(100)//生成 0 - 100 之間的隨機(jī)數(shù) ran.Next(10, 100)//生成 10 - 100 之間的隨機(jī)數(shù) Dim ran = New Random(DateTime.Now.Millisecond)//通過(guò)日期的微秒生成隨機(jī)數(shù)
摘自亮術(shù)網(wǎng)
|