GO GOLANG 生成范围随机数

Python023

GO GOLANG 生成范围随机数,第1张

math/rand 中的所有整数函数都生成非负数.

示例 main.go

执行

同理,需要int64 int32类型的随机数只要修改随机函数

但是需要注意 math/rand 几个函数的取值区间!如Intn的范围[0, n)。[0,20),20会取不到

我自己的需求这样写已足够

12345678910111213141516171819202122232425262728293031323334 #include "stdafx.h"#include "process.h"#include "time.h"//引入时间头文件 利用时间作为随机数种子#include <iostream>using namespace stdbool testRepetition(int iArr[], int newNum, int ilength)//定义函数 判断新产生的随机数是否与前面有重复值int main(int argc, char* argv[]){int iNum[4] = { 0 }//定义整形数组 初始化各项为0srand((unsigned)time(NULL))//出初始化随机数种子for (int i = 0i <4i++){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 = 0i <ilengthi++){//printf("\n**************%d,%d,%d,%d****************\n", sizeof(iArr) / sizeof(iArr[0]),i, iArr[i], newNum)if (iArr[i] == newNum){ return false}}return true}