C/C++ 随机数(rand/srand)

C/C++随机数

  • rand() 随机
  • srand() 随机 (设置一个种子)
  • srand() 指定范围随机
  • 随机0.00 ~ 1.00之间的double
  • srand() 随机0-9之间的数
  • 随机整数范围内的小数

rand() 随机

#include
#include

int main() {
     
	// 随机数 rand(每次启动都是一样的数)
	for (int i = 0; i < 10; i++)
	{
     
		printf("%d \n", rand());
	}
	return 0;
}

srand() 随机 (设置一个种子)

#include
#include
#include

int main() {
     
	// srand 随机数,设置一个种子seed, 
	// 发现每次重启还是一样的值, 只有种子不一样,随机数才不一样
	srand(11);
	for (int i = 0; i < 10; i++)
	{
     
		printf("%d \n", rand());
	}
	
	// 获取种子每次不一样的值
	int seed = time(NULL);
	// 通常传入当前的时间(保证不重复)
	srand(seed);
	for (int i = 0; i < 10; i++)
	{
     
		printf("%d \n", rand());
	}
	return 0;
}

srand() 指定范围随机

#include
#include
#include

int main() {
     
	// rand 取范围之间的数: 取模:如取200-290之间的值, 90是区间长度
	srand(time(NULL));
	for (int i = 0; i < 10; i++)
	{
     
		printf("%d \n", rand() % 90 + 200);
	}
	return 0;
}

随机0.00 ~ 1.00之间的double

#include
#include
#include

int main() {
     
	srand(time(NULL));
	// 要0.00 - 1.00 之间的小数
	int r = rand() % 100;
	double rp = r / 100.0;
	printf("%.2f \n", rp);
	// 或者
	double rp2 = (double)rand() / RAND_MAX;
	printf("%.2f \n", rp2);
	return 0;
}

srand() 随机0-9之间的数

#include
#include
#include

int main() {
     
	srand(time(NULL));
	// 随机0-9之间
	int r = rand() % 10;
	printf("%d \n", r);
	return 0;
}

随机整数范围内的小数

#include
#include
#include
#include

int main() {
     
	srand(time(NULL));
	// 随机100- 160之间的小数
	int r = rand() % 60 + 100; // 获取一个整数
	double rp = r + (double)rand() / RAND_MAX; // 整数 + 随机一个小数
	printf("%.2f \n", rp);
	return 0;
}

你可能感兴趣的:(C/C++,c++,c语言)