c - 在 C 中欺骗随机化器

标签 c random

我想得到 1 到 10 之间的随机数。 它确实有效,但当它处于循环中时,我并没有真正获得随机数。

int randomNum;
srand ( (unsigned int)time(NULL) );
randomNum = rand() % 10;

我在这里和谷歌上花了几个小时寻找解决方案,但看起来没有人真正解决它(或者我搜索得不够好)。 我们从随机发生器获得的值取决于秒数(不是毫秒或其他东西,就像在其他编程语言中一样),这就是数字不是随机的原因。

此外,我不想下载 C 语言包,因为我在大学实验室中运行我的代码,他们不允许。

有没有人对这个问题有创造性的解决方案?也许是一些数学函数?

最佳答案

为了说明 Sidoh 的回答。

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int main(int argc, char** argv)
{
    int i;

    srand ( (unsigned int)time(NULL) );

    for (i = 0; i < 100; i++)
    {
        printf("%d ", 1 + (rand() % 10));
    }
    putchar('\n');
    return 0;
}

这为我使用 time( ) 的一次性种子产生了以下结果。

7 10 2 4 4 4 2 1 7 7 10 4 3 10 2 9 6 9 2 9 7 10 4 1 1 8 2 4 8 1 2
4 2 3 9 5 8 1 7 4 9 8 10 1 8 1 1 5 1 4 5 7 3 9 10 3 6 1 9 3 4 10
8 5 2 7 2 2 9 10 5 9 8 4 1 7 7 2 3 7 5 8 6 10 8 5 4 3 7 2 8 2 1 7
7 5 5 10 6 5 

关于c - 在 C 中欺骗随机化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15824922/

相关文章:

c - 将不同的结构传递给c中的函数

c - 通过 MacPorts 安装 gcc45 后,如何使用它在我的 Mac 上构建 C 语言?

c++ - 使用 C++ 的高斯分布无均值和标准差

Python - 来自文件的行 - 所有组合

PHP:从数组中进行非重复选择

c - 程序收到信号 sigtstp 已停止(用户)

cvNamedWindow 销毁任何以前的窗口

c++ - 如果从 C 源而不是 C++ 源调用 pthread_exit,取消处理程序将不会运行

javascript - jquery 和 id 选择器问题

javascript - 尝试设置随机文本。我的代码有什么问题?