const NUM int = 100
成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括華陰網(wǎng)站建設(shè)、華陰網(wǎng)站制作、華陰網(wǎng)頁(yè)制作以及華陰網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,華陰網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到華陰省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!
for i := 0; i NUM; i += 1 {
rand.Seed(int64(i))
fmt.Printf("%d\t", rand.Int63n(int64(NUM)))
}
其實(shí)在循環(huán)里面這點(diǎn)時(shí)間間隔,納秒也是跟不上的。
還有,你用sleep的方法肯定是不能接受的?。?!
math/rand 中的所有整數(shù)函數(shù)都生成非負(fù)數(shù).
示例 main.go
執(zhí)行
同理,需要int64 int32類(lèi)型的隨機(jī)數(shù)只要修改隨機(jī)函數(shù)
但是需要注意 math/rand 幾個(gè)函數(shù)的取值區(qū)間!如Intn的范圍[0, n)。[0,20),20會(huì)取不到
我自己的需求這樣寫(xiě)已足夠
可以隨機(jī)產(chǎn)生N(N=字符串長(zhǎng)度)個(gè)大小各不相同的數(shù)字,然后根據(jù)這些隨機(jī)數(shù)在整個(gè)隨機(jī)數(shù)組中的排位決定制取原字符串中的哪個(gè)數(shù)字(比如第一個(gè)隨機(jī)數(shù)在整個(gè)數(shù)組中是第8大的,那結(jié)果的第1個(gè)數(shù)字就是原字符串的第8個(gè)數(shù)字,依此類(lèi)推),這樣就做成了一個(gè)隨機(jī)但一一對(duì)應(yīng)的映射
Private Sub Command1_Click()
Dim sOrigin As String
Dim iLen As Integer
Dim s() As Single
Dim sResult As String
sOrigin = "2233445566"
iLen = Len(sOrigin)
ReDim s(1 To iLen) As Single
Randomize
For i = 1 To iLen
s(i) = Int(Rnd() * 1000) + i / 1000 '整數(shù)部分隨機(jī),小數(shù)部分各不相同
Next
For i = 1 To iLen
sResult = sResult Mid(sOrigin, rank(s(i), s()), 1)
Next
Debug.Print sResult
End Sub
Private Function rank(num As Single, arr() As Single) As Integer
Dim iRank As Integer
iRank = 1
For i = 1 To UBound(arr)
If arr(i) num Then
iRank = iRank + 1
End If
Next
rank = iRank
End Function
運(yùn)行結(jié)果:
4353226456
6454623352
4263552436
5245643326
2435425366
6526323454
2532563446
...