要取得[a,b)的随机整数,使用(rand() % (b-a))+ a;
要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a;
要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1;
通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。
要取得a到b之间的随机整数,另一种表示:a + (int)b * rand() / (RAND_MAX + 1)。
要取得0~1之间的浮点数,可以使用rand() / double(RAND_MAX)。
https://blog.csdn.net/hellokandy/article/details/90045187
上面其实产生的是伪随机数,如何产生真随机数:
- 产生任意区间[a,b]内均匀分布的随机整数
int MY_Random1(int a, int b,int* r)
{
int k,l,m,i,p;
k=b-a+1; l=2;
while (l
- 产生n个任意区间[a,b]内均匀分布的随机序列p[ ]
void MY_Random2(int a, int b, int* r, int p[], int n)
{
int k,l,m,i;
k=b-a+1; l=2;
while (l 


