几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(C++) (http://www.dimcax.com/hust/forumdisplay.php?f=34)
-   -   【转帖】rand()函数要怎样写 (http://www.dimcax.com/hust/showthread.php?t=6347)

yang686526 2009-04-16 10:56 AM

【转帖】rand()函数要怎样写
 
rand()函数要怎样写
rand()函数要怎样写
请问,如果我要写一个带参数的随机函数如: random(10) 则返回从0 - 10 之间的随机数,请问要怎样写呢,谢谢
====== 挫折不是失败 ======
====== 成功缘于坚持 ======
是没人知道吗,还是各位大虾不屑指教?
====== 挫折不是失败 ======
====== 成功缘于坚持 ======
example
/* rand.c: this program seeds the random-number generator * with the time, then displays 10 random integers. */#include <stdlib.h>#include <stdio.h>#include <time.h>void main( void ){ int i; /* seed the random-number generator with current time so that * the numbers will be different every time we run. */ srand( (unsigned)time( null ) ); /* display 10 numbers. */ for( i = 0; i < 10;i++ ) printf( " %6d\n", rand() );}
output
6929 8026 21987 30734 20587 6699 22034 25051 7988 10104
函数定义
int randbetween(int numl, int numh)
{
int a;
double b;
int c;
if (numl > numh) //交换
{
int tmp;
tmp = numh;
numh = numl;
numl = tmp;
}
do
{
a = rand(); //产生0到rand_max之间的随机数
b = a / sqrt(a + 1);
c = (int)b;

if (numl <= c && c <= numh)
{
return c;
}

} while(1);
}
函数调用
void hello()
{
int nran = randbetween(10, 20);
ads_printf("\n 随机数= %d", nran);
}


所有的时间均为北京时间。 现在的时间是 09:26 AM.