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

...