我是靠谱客的博主 无情芝麻,最近开发中收集的这篇文章主要介绍高效生成1万个不重复的随机数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <time.h>

#define DATA_LEN 10000

void print(int *x)
{
	int i;
	for (i=0; i<10; i++) {//打印10个数据看一下
		printf("%d ", x[i]);
	}
	printf("n");
}

void mix(int *x, int len)
{
	int i1, i2;
	int tmp;
	
	srand(time(NULL));

	for(int i=0; i<len; i++) {
		i1 = rand() % len;//rand()生成0~RAND_MAX之间的随机整数
		i2 = rand() % len;
		tmp = x[i1];
		x[i1] = x[i2];
		x[i2] = tmp;
	}
}

int main(int argc, char *argv[])
{
	int *pdata = (int *)malloc(sizeof(int)*DATA_LEN);
 
 	for(int i=0; i<DATA_LEN; i++) {
 		pdata[i] = i;
 	}
 	
 	print(pdata+DATA_LEN-10);//乱序前
 	mix(pdata, DATA_LEN);
 	print(pdata+DATA_LEN-10);//乱序后
	
	return 0;
}

 

最后

以上就是无情芝麻为你收集整理的高效生成1万个不重复的随机数的全部内容,希望文章能够帮你解决高效生成1万个不重复的随机数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部