用随机数生成10×10的矩阵,生成的数要小于10,其中小于5的概率为10%,用c语言buahc
时间: 2024-10-17 14:08:36 浏览: 32
在C语言中,我们可以使用`<stdlib.h>`库的`rand()`和`srand()`函数来生成随机数,并通过条件判断确保满足特定的概率分布。下面是一个简单的示例代码,它生成一个10x10的矩阵,其中小于5的数的概率为10%:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MATRIX_SIZE 10
int main() {
srand(time(0)); // 设置随机种子,让每次程序运行得到不同的随机数序列
int matrix[MATRIX_SIZE][MATRIX_SIZE]; // 创建一个10x10的矩阵
for (int i = 0; i < MATRIX_SIZE; ++i) {
for (int j = 0; j < MATRIX_SIZE; ++j) {
// 生成一个0到9之间的随机数
int random_num = rand() % 10;
// 随机数小于5的概率为10%,所以检查并设置相应的值
if ((rand() % 100) <= 50) { // 随机生成一个0-99的数,小于等于50的概率为10%
random_num = (rand() % 5) + 1; // 保留1-5的小于5的数
}
matrix[i][j] = random_num; // 将生成的随机数放入矩阵
}
}
// 打印矩阵
for (int i = 0; i < MATRIX_SIZE; ++i) {
for (int j = 0; j < MATRIX_SIZE; ++j) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
这个程序首先设置了随机数生成器的种子,然后遍历矩阵中的每个元素,生成一个0到9的随机数。如果生成的随机数对应的小于5的概率触发(这里通过`rand() % 100 <= 50`实现),就将随机数限制在1-5之间。最后,矩阵会被打印出来。
阅读全文