用c语言随机获区100个整数,用rand() 函数去100 个随机的整数的有关问题
用rand() 函數去100 個隨機的整數的問題
int?rand100?=?(((double)?rand()?/?(double)?RAND_MAX)?*?RANGE_MAX?+?RANGE_MIN);
你讓??RANGE_MAX=1;RANGE_MIN?=?0
問題:
1?rand()?返回的是?什么類型的數?
2?(double)?rand()?/?(double)?RAND_MAX),為什么要對rand取整?這樣的結果不就是?零?嗎?
3?要是?去?100??個?隨機?整數,這個程序對嗎?
分享到:
更多
------解決方案--------------------
rand()返回值是int
RANGE_MAX取值應該為100,這樣就是一個0-100范圍內的隨機數
------解決方案--------------------
參考C:\Program?Files\Microsoft?Visual?Studio?10.0\VC\crt\src\rand.c
/***
*rand.c?-?random?number?generator
*
*???????Copyright?(c)?Microsoft?Corporation.?All?rights?reserved.
*
*Purpose:
*???????defines?rand(),?srand()?-?random?number?generator
*
*******************************************************************************/
#include?
#include?
#include?
#include?
/***
*void?srand(seed)?-?seed?the?random?number?generator
*
*Purpose:
*???????Seeds?the?random?number?generator?with?the?int?given.??Adapted?from?the
*???????BASIC?random?number?generator.
*
*Entry:
*???????unsigned?seed?-?seed?to?seed?rand?#?generator?with
*
*Exit:
*???????None.
*
*Exceptions:
*
*******************************************************************************/
void?__cdecl?srand?(
unsigned?int?seed
)
{
_getptd()->_holdrand?=?(unsigned?long)seed;
}
/***
*int?rand()?-?returns?a?random?number
*
*Purpose:
*???????returns?a?pseudo-random?number?0?through?32767.
*
*Entry:
*???????None.
*
*Exit:
*???????Returns?a?pseudo-random?number?0?through?32767.
*
*Exceptions:
*
*******************************************************************************/
int?__cdecl?rand?(
void
)
{
_ptiddata?ptd?=?_getptd();
return(?((ptd->_holdrand?=?ptd->_holdrand?*?214013L
+?2531011L)?>>?16)?&?0x7fff?);
}
------解決方案--------------------
1.rand()函數返回什么
rand()函數式stdlib.h里聲明的函數。
它生成一個[0,?RAND_MAX]的均勻隨機整數。
其中,RAND_MAX至少為32767(2^15-1)
returns?a?pseudo-random?number?0?through?32767.
2.?(double)?rand()?/?(double)?RAND_MAX):
這是把生成的隨機數范圍縮小到[0,1],double/double得出結果不是0,而是double型數據
3.?要是?去?100?個?隨機?整數,這個程序對嗎?
不對。
乘以RANGE_MAX是讓隨機數的范圍擴大到[0,?RANGE_MAX],加上RANGE_MIN是讓隨機數的范圍限制到[RANGE_MIN,?RANGE_MAX]
總結
以上是生活随笔為你收集整理的用c语言随机获区100个整数,用rand() 函数去100 个随机的整数的有关问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Golang——变量和常量详解
- 下一篇: 智能机器人建房子后房价走势_人工智能未来