A. c语言rand怎么随机产生浮点型数
#include<stdlib.h>
#include<time.h>
#include<iostream.h>
#define MAX_RANDOM 1000//这个是产生随机数的最大值,但是取浮点数,所以要除去的
#define NUM 2500
double random(double a,double b)//这个是产生随机数函数,由于库函数功能有限,所以要自己封装一下
{
return(rand()%(int)((b-a)*MAX_RANDOM))/(double)MAX_RANDOM+a;
}
void main()
{
double Dran[NUM+(NUM-1)*4];
double ran[(NUM-1)*4];
double a,b;
int k=0;
srand((unsigned)time(NULL));//这个是设定随机数的种子数,由于种子数相同产生的随机数相同,所以取时间做种子
cout<<"***********************************亲体**************************"<<endl;
for(int i=0;i<NUM+(NUM-1)*4;i=i+5)//获得了亲体
{
Dran<i>=random(10,20);
cout<<Dran<i><<"";
}
/*
cout<<"***********************************后代**************************"<<endl;
//Dran里面是装的亲代和后代一起的,ran里面只是装的后代
for(i=0;i<NUM+(NUM-1)*4-1;i=i+5)
{
a=Dran<i>;
b=Dran[i+5];
for(int j=1;j<=4;j++)
{
Dran[i+j]=random(a,b);
ran[k]=Dran[i+j];
cout<<ran[k]<<"";
k++;
}
}
*/
}
(rand()%(int)((b-a)*MAX_RANDOM))/(double)MAX_RANDOM+a这个产生浮点数.
(1)c语言ran扩展阅读:
include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:
#include<math.h>//一些数学函数的原型,以及相关的类型和宏
如果需要包含针对程序所开发的源文件,则应该使用第二种格式。
采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。
B. 关于用C语言库函数rand()生成随机数的问题
rand()生成[0,RAND_MAX]之间的随机数,
生成[a, b]范围内的浮点随机数,a + rand() * 1.0 * (b - a) / RAN_MAX
整数随机数: a + rand() / (RAN_MAX / (b - a) + 1)
rand()/RAND_MAX - 2 是错的,浮点数只会得到[-2, -1],整数只会得到-2和-1两个数。
C. c语言问题。对于1~9这9个数字,任取n个数字,存放在二维数组ran
没有C编译器,用java写了个,能跑
char_use的意思,是该数字是否采用:0-不采用,1-采用,当采用个数正好等于参数n时,表示这一组合是要放到返回数组中的。
循环结尾处:就是对一个九位数进行+1操作,当最后一位需要进位时,前一位+1,其实可以用for(i=0;i<512;i++),取二进制的9位,0-不采用,1-采用。然后1的数量是参数n的时候,将这个组合装入返回数组。
public class Test9 {
static int[][] return_arr(int n){
int size=1;
for(int i=1;i<=n;i++) size=size*(10-i)/i;
int[][] _array = new int[size][n];
int[] char_use = {0,0,0,0,0,0,0,0,0};
int char_use_sum;
int _array_row=0;
int _array_col;
while(char_use[0]<2) {
char_use_sum = 0;
for(int i=0;i<9;i++) char_use_sum+=char_use[i];
if(char_use_sum == n) {
_array_col = 0;
for(int i=1;i<10;i++) {
if(char_use[i-1] == 1) {
_array[_array_row][_array_col] = i;
_array_col++;
}
}
_array_row++;
}
for(int i=8;i>=0;i--){
if(i==0 || char_use[i]+1<2){
char_use[i]++;
break;
}else{
char_use[i]=0;
}
}
}
return _array;
}
public static void main(String[] args){
int[][] x= return_arr(2);
for(int i=0;i<x.length;i++) {
for(int j=0;j<2;j++) System.out.print(x[i][j]+",");
System.out.println();
}
}
}
D. C语言中ran()函数的用法
需要包含 stdlib.h
随机产生一个 0-32767间整数并返回 如 i=rand();
当需要某一定范围内值的时候如 需要 100-200: i=100+rand()%100;
E. C语言中的"ran2.c"是什么
这个应该是自己写的一个C语言文件,自己包含进来的,你的程序不全,你再找找还有没有其他文件。
F. 轻松学C语言随机函数ran
#include<stdlib.h>
#include<stdio.h>
intmain()
{
inti=30;
while(i--)
{
printf("%5d",rand());
if(i%10==0)
{
printf(" ");
}
}
}
G. C语言srand和rand函数
rand()函数,一般根srand()函数一起用。它们在一起,作用是:产生一个随机数。
通常格式为:
srand ( (unsigned) time (NULL) );
a=rand()%x; //a,x,均为整型变量,其中,x在之前应被赋值。
srand函数里面的unsigned也可以换成其它的。例如:int之类的数据类型,但结果也会有相应的变化。
通过rand函数产生随机数以后,用%x来限定它的范围。即:0<=a<x。
其原理是:用那个随机数,去除以x,留下所得余数,作为最终结果。
H. C语言编程题
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>//我用的是vc 这是添加的
void main()
{
int a[21],i,ran,max,min,sum,average;
system("cls"); //clrscr();vc中没这个清屏函数我换了个
for (i=1;i<=20;i++)
{
while((ran=rand())/10==0)
a[i]=ran;
}
max=min=a[1];
sum=0;
for(i=1;i<=20;i++)
{
printf("a[%d]=%d\n",i,a[i]);
sum+=a[i];
if(max<a[i])
max=a[i];
else if(min>a[i])
min=a[i];
}
average=sum/20;
printf("\nsum=%d, max=%d, min=%d, average=%d \n",sum,max,min,average);
puts("\nany key to exit!");
getche();
}
程序可以执行,你看下运行结果对不对,我把random(51)换成了rand(),因为<stdlib.h>中不包括random()函数
I. c语言怎么让每次运行使用的随机数种子都不一样
指定seed为当前系统流逝了的时间(单位为秒):time_t time(0):
#include <ctime>
//…
srand((unsigned)time(0));
for(int i=0;i<10;i++){
ran_num=rand() % 6;
cout<<ran_num<<" ";
}
第一次运行时输出:0 1 5 4 5 0 2 3 4 2
第二次:3 2 3 0 3 5 5 2 2 3
总之,每次运行结果将不一样,因为每次启动程序的时刻都不同