使用C语言设计一个随机数发生器,可以产生分布在任意调整区间[a,b]的随机数序列。并分析时间复杂度
时间: 2023-12-31 12:03:53 浏览: 43
以下是一个简单的使用C语言实现的随机数发生器,可以产生分布在任意调整区间[a,b]的随机数序列:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int a = 1, b = 10, n = 10; // 调整区间[a,b]和随机数序列长度n
int i;
srand(time(NULL)); // 设置随机数种子为当前时间
for (i = 0; i < n; i++) {
int rand_num = rand() % (b - a + 1) + a; // 生成[a,b]区间内的随机数
printf("%d\n", rand_num);
}
return 0;
}
```
这个随机数发生器的时间复杂度为O(n),因为需要生成n个随机数。如果需要生成更多的随机数,时间复杂度会相应增加。
相关问题
C语言产生一个随机数的代码
C语言中产生随机数的函数是rand(),需要先使用srand()函数来初始化随机数种子。下面是一个简单的产生随机数的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int i;
// 初始化随机数种子
srand((unsigned)time(NULL));
// 产生10个随机数
for (i = 0; i < 10; i++) {
printf("%d\n", rand());
}
return 0;
}
```
此代码会随机产生10个整数并输出。注意:每次运行程序都会产生不同的随机数序列。
产生一个在[-0.5,0.5]内服从均匀分布的随机数序列
好的,以下是产生随机数序列的 MATLAB 代码:
```matlab
% 设置随机数种子,确保每次运行生成的随机数序列一致
rng(123);
% 生成随机数序列
n = 10; % 设置生成的随机数个数
random_seq = rand(1, n) - 0.5; % 产生在[-0.5,0.5]内服从均匀分布的随机数序列
% 显示随机数序列
disp(random_seq);
```
上述代码通过 `rand()` 函数生成在 [0, 1) 内均匀分布的随机数序列,然后通过将其减去 0.5,使其在 [-0.5, 0.5] 内服从均匀分布。 `rng()` 函数用于设置随机数种子,确保每次运行生成的随机数序列一致。您可以根据需要修改 `n` 的值,来设置生成的随机数个数。