用c代码写一个随机数不用rand()和srand()和线性同余法
时间: 2024-05-01 08:17:46 浏览: 127
生成随机数的C语言代码
可以使用系统时间来生成随机数。
首先,通过系统函数time(NULL)获取当前时间(以秒为单位),然后将其作为种子来生成随机数。为了增加随机性,可以使用时间的毫秒部分作为随机数生成的一部分。
下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <time.h>
int main() {
int r;
struct timespec tm;
clock_gettime(CLOCK_REALTIME, &tm);
// 以秒为单位的时间作为种子
srand((unsigned int) tm.tv_sec);
// 通过时间的毫秒部分生成随机数
r = (tm.tv_nsec % 100) + 1;
printf("随机数为:%d\n", r);
return 0;
}
```
此代码将使用当前时间作为种子,将时间的毫秒部分取模后加1作为随机数。注意,这并不是一个完全随机的算法,但对于大多数情况下的随机数需求已经足够了。
阅读全文