55问答网
所有问题
用C语言编写,使用51单片机生成0--9不重复数字。请问用什么做随机种子,如何产生不重复随机数?
如何将随机生成的这10位数用数码管显示出来?解决者将赠送更多的悬赏!!!
举报该问题
推荐答案 2019-05-11
//正好我在做一个抽奖程序,有一段随机数去重代码,你可以借鉴一下。
//这种算法比较节省空间(至少我是这么觉得)
//用一个unsigned int型变量,记录已生成的随机数,代码如下
#include <reg51.h>
#include<stdlib.h>
unsigned int random = 0x00;
unsigned char nums[10] = {0};
void myrand()
{
unsigned char temp,i;
for(i=0;i<10,++i)
{
temp=rand();
if((random>>temp)&0x01==0x00)
nums[i]=temp;
}
}
//你根据你的需求改吧,求采纳。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://55.wendadaohang.com/zd/cLGc4eQRI.html
其他回答
第1个回答 2012-09-22
只有0~9十个数,随机产生重复是不可能的,一般而言,随机数都是一个浮点数,获得整数都是经过四舍五入等处理,怎么可能不重复,所以这个愿望是不能实现的,除非将重复数去除,也就是过滤掉。
追问
用什么做随机种子啊?
追答
先调用srand(int n)这就是种子
再调用rand()
要产生0~9之间的数n=9就可以了。
本回答被提问者和网友采纳
第2个回答 2012-09-21
用电容充放电不确定值的方式作为随机数种子。
相似回答
C语言如何
从
0-9产生
4个
不重复
的
随机数
答:
而且通过时间作为
种子,
避免每次的
随机数
都一样!include<stdio.h> include<stdlib.h> include void main(){ int aim[4],flag[10]={0};srand(time(NULL));for(int i=0;i<4;i++){ int temp = rand()%10;if(flag[temp]==0){ aim[i]=temp;flag[temp]=1;} else i--;} for(i...
使用
rand函数
,随机生成
没有
重复
的4个数。(每个
数字
在
0-9
范围内)。帮...
答:
int main(){ int i;srand(time(NULL));//设置
随机数种子
。for(i = 0; i < 4; i ++)//运行4次。printf("%d\n", (int)rand()%10);//每次获取一个随机数并输出。return 0;}
用C语言编写
程序
,随机
输出一个
使用0
~9是个
数字
组成无
重复
的七位数
答:
system("PAUSE");return 0;}
如何生成
一组(5个)
0-9
的
随机数,
要求每次启动程序
产生
的随机数组与上次生...
答:
得看你
用什么
编程语言的 一般的,像
C语言
,可以用srand()或者srandom()函数设置种子,然后循环用rand()%10或者是random()%10来得到5个
随机数
VB的话,用Randomize设置
随机种子,用
rnd() mod 10得到随机数 其它语言得参考具体的函数~~
c语言,如何产生随机数
答:
生成随机
数时需要我们指定一个
种子,
如果在程序内循环,那么下一次生成随机数时调用上一次的结果作为种子。但如果分两次执行程序,那么由于种子相同
,生成
的“
随机数
”也是相同的。\x0d\x0a\x0d\x0a在工程应用时,我们一般将系统当前时间(Unix时间)作为种子,这样生成的随机数更接近于实际意义上的随机...
大家正在搜
单片机用什么语言编程
51单片机编程语言
单片机c语言编程300例
51单片机c语言编程入门
用keil编写51单片机程序步骤
c语言51单片机
单片机汇编语言
c语言单片机编程教程
单片机三大编程语言
相关问题
如何用C语言产生不重复的0到9之间的随机数
如何用C语言重复的产生不重复的0到9之间的随机数?
c语言中如何产生0~99不重复的随机数,调用rand,sra...
c语言 编写一个程序,程序中使用随机函数产生一个0~9之间的...
c语言随机生成一个介于0-9之间的数字,指定为第一个数字 再...
怎么用C语言写这样的程序? 编写函数,调用随机函数,产生0到...
C语言如何从0-9产生4个不重复的随机数
用C语言编写程序,随机输出一个使用0~9是个数字组成无重复的...