生成0~9之间不重复的随机数

int main(void)
{
	int m[9] = { 0 };
	int flag = 0;
	srand(time(0));
	for (int i = 0; i < 9; i++)
	{

		do
		{
			flag = 0;
			m[i] = rand() % 9 + 1;

			for (int j = 0; j < i; j++)
			{
				if (m[j] == m[i])
				{
					flag = 1;
				}
			}

		} while (flag==1);
	}

	for (int i = 0; i < 9; i++)
	{
		printf("%d ",m[i]);
	}

}

那句flag=0很关键。

感觉自己while循环用的不是很好呀,尤其是while里面用了if这种类型的,一会就绕晕了。

原文地址:https://www.cnblogs.com/yfish/p/9834001.html

时间: 2024-10-11 16:10:09

生成0~9之间不重复的随机数的相关文章

运用简单的bloomfilter算法生成100万个不重复的随机数

本文中只是简单的体会bloomFilter算法的基本原理,设计实现一个生成100万个不重复的随机数. 选择3个分布均匀质数,在这里面质数的选择还是挺有讲究的,要注意不能太小,必须能够满足bloomfilter空间,不然整个空间都是1了还没有找到100万个不重复的随机数.不多说,上代码. #include<stdio.h> #include<stdlib.h> #include<time.h> #include<cstdbool> #define MAXNUM

生成count个[0-n)不重复的随机数

代码来自:https://www.cnblogs.com/ningvsban/p/3590722.html,感觉实现的方式不错(做了一点小小修改) public static ArrayList getDiffNo(int count, int n){ // 生成count个[0-n) 不重复的随机数,左开右闭 // list 用来保存这些随机数 ArrayList list = new ArrayList(); Random rand = new Random(); boolean[] boo

js--随机产生100个从0 ~ 1000之间不重复的整数(me)

<style>       div{text-indent:40px;} </style> <script> window.onload=function(){ var arr=[]; var str=''; for(var i=0;i<100;i++){ /*思路:先把随机数追加到数组尾部*/ arr.push(Math.round(Math.random()*1000)); /*然后再拿这个数组最后一个与之前的数一一比较*/ for(var j=0;j<

一亿个不重复的随机数算法

最近浏览“程序员论坛”时发现不少好帖,增长了不少知识,现拿其中一则为例与大家共同分享心得. 某人提出一个问题:怎样才能生成一亿个不重复的随机数? 问题表述起来很简单,似乎只要弄明白什么叫随机数以及怎样用电脑生成随机数,就能解决问题. 随机数,个人理解为一定范围内出现的毫无规律的数,比如扔一个骰子,落在桌面上时朝上的一面所表示的数就是随机数,这个数只能在1到6的范围内,但具体是什么数,谁也不能肯定,因为它没有规律.一组不重复的随机数,对扔骰子来说就是扔出六个不一样的数来,再比如洗一次扑克牌,洗完后

PHP CodeBase: 生成N个不重复的随机数

有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次.前面有个程序员捅了漏子,忘了把投票入库,有200个用户产生的投票序列为空.那么你会如何填补这个漏子? 当然向上级反映情况.但是我们这里讨论的是技术,就是需要生成1-25之间的16个不重复的随机数,去填补.具体怎么设计函数呢?将随机数存入数组,再在数组中去除重复的值,即可生成一定数量的不重复随机数. 程序如下: <?php/** array unique_rand( int $min, int $max, int $num

用C#生成不重复的随机数

对于随机数,大家都知道,计算机不可能产生完全随机的数字,所谓的随机数发生器都是通过一定的算法对事先选定的随机种子做复杂的运算,用产生的结果来近似的模拟完全随机数,这种随机数被称 作伪随机数.伪随机数是以相同的概率从一组有限的数字中选取的.所选数字并不具有完全的随机性,但是从实用的角度而言,其随机程度已足够了.伪随机数的选 择是从随机种子开始的,所以为了保证每次得到的伪随机数都足够地"随机",随机种子的选择就显得非常重要.如果随机种子一样,那么同一个随机数发生器产生 的随机数也会一样.一

如何产生1-100之间的100个不重复的随机数

如果这是你是第一次看到这个题目,也许你的想法有很多. 1:首先从原始数组中随机选择一个数字,然后将该数字从数组中剔除,再随记选,再剔除,重复99次,就解决了. 我们知道从数组中剔除一个元素的复杂度为O(N),那么随机选取n个数字,它的复杂度就是O(N2)了. 2:用hash作为中间过滤层,因为在数组中,我们采用随机数的话,也许随机数在多次随机中可能会有重复,所以需要用hash来判断一下, 如果在hash中重复,则继续产生随机数,直到不重复为止,当然这个复杂度就不好说了,得要看随机数随机不随机了,

Golang:生成n个从a到b不重复的随机数

代码很简单: package test import ( "fmt" "math/rand" "time" ) //生成若干个不重复的随机数 func RandomTestBase() { //测试5次 for i := 0; i < 5; i++ { nums := generateRandomNumber(10, 30, 10) fmt.Println(nums) } } //生成count个[start,end)结束的不重复的随机数

.net中如何生成不重复的随机数

.net中生成不重复的随机数的方法         //获取count个不大于maxNumber的整数,所有整数不重复.当然,count必须小于等于maxNumber         static List<int> GetRandomArray(int maxNumber,int count)         {             List<int> list = new List<int>();//保存取出的随机数             int[] arra