golang连续生成随机数
const NUM int = 100
for i := 0; i NUM; i += 1 {
rand.Seed(int64(i))
fmt.Printf("%d\t", rand.Int63n(int64(NUM)))
}
其实在循环里面这点时间间隔,纳秒也是跟不上的。
还有,你用sleep的方法肯定是不能接受的!!!
GO GOLANG 生成范围随机数
math/rand 中的所有整数函数都生成非负数.
示例 main.go
执行
同理,需要int64 int32类型的随机数只要修改随机函数
但是需要注意 math/rand 几个函数的取值区间!如Intn的范围[0, n)。[0,20),20会取不到
我自己的需求这样写已足够
求教:如何输入一些数字,让它随机出现
可以随机产生N(N=字符串长度)个大小各不相同的数字,然后根据这些随机数在整个随机数组中的排位决定制取原字符串中的哪个数字(比如第一个随机数在整个数组中是第8大的,那结果的第1个数字就是原字符串的第8个数字,依此类推),这样就做成了一个随机但一一对应的映射
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 '整数部分随机,小数部分各不相同
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
运行结果:
4353226456
6454623352
4263552436
5245643326
2435425366
6526323454
2532563446
...