C/C++——生成随机数
2016-10-18 17:26
393 查看
1、不指定范围的随机数
在C/C++中,产生随机数需要使用到函数srand()函数和rand()函数。在C语言中,srand()函数和rand()函数都是定义在2、在指定范围内生成随机数
2.1、生成在指定区间start~end之间的随机整数:#include <stdio.h> #include <stdlib.h> #include <time.h> int Random(int start, int end){ int dis = end - start; return rand() % dis + start; } int main(){ int a[10]; int i = 0; srand((unsigned)time(NULL)); for (i = 0; i < 10; i++){ a[i] = Random(2, 7); } for (i = 0; i < 10; i++){ printf("%d ", a[i]); } printf("\n"); return 0; }
2.2、生成0~1之间的随机数
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ double a[10]; int i = 0; srand((unsigned)time(NULL)); for (i = 0; i < 10; i++){ a[i] = rand() / (RAND_MAX + 1.0); } for (i = 0; i < 10; i++){ printf("%f ", a[i]); } printf("\n"); return 0; }
2.3、生成指定区间start~end上的随机浮点数:
#include <stdio.h> #include <stdlib.h> #include <time.h> double Random(int start, int end){ int dis = end - start; printf("dis: %d\n", dis); return start + dis * (rand() / (RAND_MAX + 1.0)); } int main(){ double a[10]; int i = 0; srand((unsigned)time(NULL)); for (i = 0; i < 10; i++){ a[i] = Random(2,4); } for (i = 0; i < 10; i++){ printf("%lf ", a[i]); } printf("\n"); return 0; }
3、不使用内置随机数函数的生成方法
主要方法:生成一个很大的数,通过截断的方法生成随机数#include <stdio.h> int main(){ unsigned long long next_random = 1; for (int i = 0; i < 30; i ++){ next_random = next_random * (unsigned long long)25214903917 + 11; fprintf(stderr, "%f\n", (((next_random & 0xFFFF) / (float)65536) - 0.5)); } return 0; }
相关文章推荐
- C/C++程序中生成随机数的方法
- C++ 随机数生成
- C++ 生成不可重复的随机数
- C/C++随机数生成 rand() srand()
- c++生成随机数
- 从易到难编写C++程序,(6)问题:利用问题(5)的随机数生成实现发牌
- C++生成随机数:指数分布(Exponential distribution)
- C++ 随机数生成
- C++中生成任意范围内随机数的方法
- C++生成随机数:连续均匀分布(uniform distribution)
- 随机数生成c++(转)
- C++ 随机数生成
- [网络收集]C++随机数生成方法
- 关于C++随机数生成中种子值设置的一点总结,解决随机数序列重复问题
- C/C++怎样生成确定范围的随机数(如[-1,1])
- C++ 随机数生成
- 【转】C++随机数生成方法
- C++生成随机数——生成任意范围内的等概率随机数 3ff8
- C/C++生成随机数的方法浅析
- C++生成随机数:高斯/正态分布(gaussian/normal distribution)