当前位置:首页 » 编程软件 » rand编程

rand编程

发布时间: 2024-05-18 03:53:43

c语言编程:使用随机函数rand()产生50个10~99的互不相同的随机整数

可以先给89 个数组赋值10 至99然后第一次随机1至89然后取出随机那个数的下标的值,把最后一个赋值给你刚才随机的数字下标,第二次从1至88随机一个数字,依次类推,循环五十次可以得到五十个不相同的。因为手机,没办法给出代码,敬请谅解

⑵ c语言random()的问题

srand((int)time(NULL))用于设定随机数种子。rand()%100,产生0-99的随机数。如果要产生16-59之间的数,可以这样写:rand()%44+16(这里44由59-16+1得到)。其他情况与此雷同。

rand()是不能产生真正的随机数的。即使不能产生真正的随机数,也要大概接近。而rand()好象每次的随机都一样。之所以rand()每次的随机数都一样是因为rand()函数使用不正确。

各种编程语言返回的随机数(确切地说是伪随机数)实际上都是根据递推公式计算的一组数值,当序列足够长,这组数值近似满足均匀分布。

(2)rand编程扩展阅读

调用随机数函数 rand()() 的时候, 实际得到的这个随机数并不是绝对随机的,它是以一个初始值,通过一个算法,计算出来的“伪随机数"数列,每次调用rand()()时,从这个数列依次取出一个值,做为随机数。

这个初始的值就是"随机数种子", 也就是说,如果随机数种子相同,计算出的随机数数列是相同的。而srand()om( x) 这个函数就是初始化随机数产生器,设定随机数种子用的。给定的x的就是随机数种子。可以验证,当你多次调用srandm(x)时,如果x取值相同,则得到的随机数数列是一样的。

所以,若我们每次运行程序时,要得到不同的随机数序列,就应该用不同的种子来初始化这个随机数产生器。比如说,用时间初始化它,或者用getpid(),用进程的pid号初始化,由于每次运行程序时,它的pid号一般是不同的,所以能够产生不同的随机数序列。

⑶ c语言中rand()函数怎么用

rand函数功能为获取一个伪随机数(伪随机数的概念下面会有介绍)。

一、函数名:

rand();


二、声明:

int rand();


三、所在头文件:

stdlib.h


四、功能:

返回一个伪随机数。之所以说是伪随机数,是因为在没有其它操作下,每次执行同一个程序,调用rand得到的随机数序列是固定的(不是真正的“随机”)。


五、为了使rand的结果更“真”一些,也就是令其返回值更具有随机性(不确定性),C语言在stdlib.h中还提供了srand函数,通过该函数可以设置一个随机数种子,一般用当前时间的毫秒数来做参数。通过time(NULL)可以获取到当前时间的毫秒值(该函数位于time.h)中。


六、使用rand的流程可以总结为:

1 调用srand(time(NULL))设置随机数种子。

2 调用rand函数获取一个或一系列随机数。

需要注意的是,srand只需要在所有rand调用前,被调用一次即可,没必要调用多次。


七、以下是随机获取10个整型值并输出的例子,辅助理解。

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

intmain()
{
inti;

srand(time(NULL));//设置随机数种子。

for(i=0;i<10;i++)//运行10次。
printf("%d ",rand());//每次获取一个随机数并输出。

return0;
}

⑷ C语言 编写程序利用rand()函数产生50个100以内的随机数,将其中的奇数写入当前目录下的"A.TXT"文件中

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

void main()
{
int i,j;
int x[50];
int n=50;
FILE *fp;

srand((unsigned)time(NULL));
// 用当前时间来产生随机数种子,这样每次用本程序产生的随机数序列 将不同,更随机。
for(i=0;i<n;i++) {
x[i] = rand() % 100; // 产生 0-99 之间的随机数,% 是整除 取余数 运算
}

fp=fopen("A.TXT","w"); //打开文件
for(i=0;i<n;i++) {
if (x[i]%2==1) fprintf(fp,"%d\n",x[i]); // 除2余数为1的是奇数,输出它
}

fclose(fp); //关闭文件
printf("the 50 rand numbers:\n");
for(i=0;i<n;i++) {printf("%2d ",x[i]); if ( (i+1)%10==0) printf("\n");} // 屏幕输出这50个随机数
printf("\nOdd rand numbers are saved in A.TXT\n");
return 0;
}

⑸ C璇瑷锛屼娇鐢╮and锛堬级鍑芥暟锛岀紪鍐欑▼搴忥纴闅忔満杈揿嚭钖屽︿滑镄勫揿悕鍜屽﹀彿锛屽湪绾跨瓑銆伞伞伞伞

#include<stdio.h>
#include<stdlib.h>
intmain()
{
FILE*fp;
charname[15];
charnum[15];
charch;
intn=0,m;
unsignedintbb;


fp=fopen("student.txt","r");
while(!feof(fp))
{
ch=fgetc(fp);
if(ch==' ')n++;
}//缁熻′汉鏁
fclose(fp);
bb=time(0);
srand(bb);
m=rand()%n+1;

n=0;
fp=NULL;
fp=fopen("student.txt","r");
while(!feof(fp)&&n<m)
{
n++;
fscanf(fp,"%s%s",name,&num);
}
printf("闅忔満鎶藉彇锛%s%s ",name,num);
fclose(fp);
system("pause");
}

热点内容
比亚迪宋plusdmi购买哪个配置 发布:2024-11-27 08:42:56 浏览:8
sql语句or和and 发布:2024-11-27 08:37:09 浏览:799
sql2005加密 发布:2024-11-27 08:32:11 浏览:741
安卓手机如何锁屏录像 发布:2024-11-27 08:31:14 浏览:99
wms源码 发布:2024-11-27 08:30:25 浏览:4
华为编译器系列 发布:2024-11-27 08:29:42 浏览:855
长江存储上海 发布:2024-11-27 08:29:31 浏览:329
crm客户管理系统源码 发布:2024-11-27 07:59:26 浏览:364
匠辰app安卓在哪里下载 发布:2024-11-27 07:47:12 浏览:731
sql表操作 发布:2024-11-27 07:46:31 浏览:814