C / C++语言中rand() 每次产生的随机数一样

2014-11-24 00:43:49 · 作者: · 浏览: 3

C / C++语言中
rand() 每次产生的随机数一样

int rand( void );

[csharp] #include
#include
#include

int 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() );

printf("\n");

// Usually, you will want to generate a number in a specific range,
// such as 0 to 100, like this:
{
int RANGE_MIN = 0;
int RANGE_MAX = 100;
for (i = 0; i < 10; i++ )
{
int rand100 = (((double) rand() /
(double) RAND_MAX) * RANGE_MAX + RANGE_MIN);
printf( " %6d\n", rand100);
}
}
}

#include
#include
#include

int 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() );

printf("\n");

// Usually, you will want to generate a number in a specific range,
// such as 0 to 100, like this:
{
int RANGE_MIN = 0;
int RANGE_MAX = 100;
for (i = 0; i < 10; i++ )
{
int rand100 = (((double) rand() /
(double) RAND_MAX) * RANGE_MAX + RANGE_MIN);
printf( " %6d\n", rand100);
}
}
}

srand() 可使每次产生的随机数不同,和rand连用
[cpp] #include
#include
#include
using namespace std;

int main()
{

srand((unsigned)time(NULL)); //初始化随机数种子
for ( int i = 0; i < 10; i ++ ) //产生10个随机数
{
cout << rand()%10 << endl;
}

return 0;
}

#include
#include
#include
using namespace std;

int main()
{

srand((unsigned)time(NULL)); //初始化随机数种子
for ( int i = 0; i < 10; i ++ ) //产生10个随机数
{
cout << rand()%10 << endl;
}

return 0;
}


Objective-C语言


arc4random() 比较精确不需要生成随即种子
使用方法:


[cpp] arc4random() //随机产生任何数
arc4random()%x //产生0~x之间的随机数
(arc4random()%x )+1 //产生1~x之间的随机数

arc4random() //随机产生任何数
arc4random()%x //产生0~x之间的随机数
(arc4random()%x )+1 //产生1~x之间的随机数


random() 需要初始化时设置种子

使用方法:


[cpp] srandom((unsigned int)time(time_t *)NULL); //初始化时,设置下种子就好了。

srandom((unsigned int)time(time_t *)NULL); //初始化时,设置下种子就好了。