const NUM int = 100
创新互联自2013年创立以来,是专业互联网技术服务公司,拥有项目成都网站设计、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元宾阳做网站,已为上家服务,为宾阳各地企业和个人服务,联系电话:13518219792
for i := 0; i NUM; i += 1 {
rand.Seed(int64(i))
fmt.Printf("%d\t", rand.Int63n(int64(NUM)))
}
其实在循环里面这点时间间隔,纳秒也是跟不上的。
还有,你用sleep的方法肯定是不能接受的!!!
math/rand 中的所有整数函数都生成非负数.
示例 main.go
执行
同理,需要int64 int32类型的随机数只要修改随机函数
但是需要注意 math/rand 几个函数的取值区间!如Intn的范围[0, n)。[0,20),20会取不到
我自己的需求这样写已足够
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include "stdafx.h"
#include "process.h"
#include "time.h"//引入时间头文件 利用时间作为随机数种子
#include iostream
using namespace std;
bool testRepetition(int iArr[], int newNum, int ilength);//定义函数 判断新产生的随机数是否与前面有重复值
int main(int argc, char* argv[])
{
int iNum[4] = { 0 };//定义整形数组 初始化各项为0
srand((unsigned)time(NULL));//出初始化随机数种子
for (int i = 0; i 4; i++)
{
int iTem = rand() % 10;//产生第一个随机数
int iLen = sizeof(iNum) / sizeof(iNum[0]); //获取数组长度
while (!testRepetition(iNum, iTem, iLen)) //直到产生与之前不重复的随机数 赋值给数组项
{
iTem = rand() % 10;//产生随机数
}
iNum[i] = iTem;//产生随机数并赋值给数组项
cout iNum[i] "\t" endl;//输出数组项数据
}
system("pause");
return 0;
}
bool testRepetition(int iArr[], int newNum, int ilength)
{
//sizeof(iArr) / sizeof(iArr[0]) 无法获取到数组的长度 数组参数传递的是指针
for (int i = 0; i ilength; i++)
{
//printf("\n**************%d,%d,%d,%d****************\n", sizeof(iArr) / sizeof(iArr[0]),i, iArr[i], newNum);
if (iArr[i] == newNum){ return false; }
}
return true;
}