相关疑难解决方法(0)

如何获取rand()(C++)的源代码?

我是编程新手.

我想知道rand()究竟是什么.

仅搜索会生成有关其用法的示例.但没有人解释函数如何生成随机数的每一步.他们将rand()视为黑盒子.

我想知道rand()正在做什么; 每一步.

是否有资源可以让我看到rand()的确切含义? 这是所有开源的东西不是吗?如果没有消息来源,我会解决这个问题.

我知道它会返回一个随机数,但它是如何生成该数字的?我想看看每一步.

谢谢.

c++ random

11
推荐指数
2
解决办法
2万
查看次数

为什么 rand() 的使用被认为是不好的?

我听到一些人说,rand()即使在使用srand()获得种子后,使用也很糟糕。为什么呢?我想知道事情是如何发生的......还有另一个问题很抱歉......但是有什么替代方法呢?

c++ random lcg

7
推荐指数
3
解决办法
5489
查看次数

为什么 rand() 在用 1 和 UINT_MAX 播种时产生相同的值?

这是一些代码:

#include <iostream>

int main() {
    srand(1);
    std::cout << rand() << "\n";
    srand(UINT_MAX);
    std::cout << rand() << "\n";
}
Run Code Online (Sandbox Code Playgroud)

这会产生以下输出:

16807
16807
Run Code Online (Sandbox Code Playgroud)

为什么这两种种子产生相同的结果?它们在连续rand()调用中产生的整个值序列也是相同的。可能值的范围太大,因此纯属巧合。是吗:

  • 实施的意外rand()(如果是这样,我很好奇那可能是什么)
  • 按设计(如果是这样,为什么?)

(可能相关:种子 10、100、1000、10000 和 100000 分别产生 168070、1680700、16807000、168070000 和 1680700000。)

c++ random srand

5
推荐指数
1
解决办法
341
查看次数

C总是生成相同的随机序列吗?

我跑了一个叫rand()四次的程序.我使用模数运算符将范围限制为1-6.产生的整数分别为2,5,4和2.我重新编程并获得相同的数字.然后我创建了一个全新的程序,也调用了rand()四次,我仍然得到整数序列2,5,4,2.然后我关闭计算机,重新启动,创建另一个新程序,调用rand()四次,仍然得到序列2,5,4,2.

我理解你需要"种子"RNG所需的基础知识srand(),它在不同的点开始序列,但我只是好奇:忘记播种片刻,是由rand()安装,编译器和/或操作系统生成的序列依赖?例如,以下任何一个会导致不同的顺序:

  • 在我的计算机上卸载并重新安装C编译器
  • 在我的计算机上安装和使用不同的C编译器
  • 使用相同的编译器在别人的计算机上运行程序?
  • 使用不同的编译器(也许是不同的操作系统)在别人的计算机上运行程序?

或者只是使用相同RNG算法的所有C编译器的问题,因此伪随机序列(从头开始)对每个人都是相同的?

c random

4
推荐指数
1
解决办法
438
查看次数

使用C++或Python生成随机数

我听说计算结果对随机数发生器的选择非常敏感.

1我想知道是否与编程自己的Mersenne-Twister或其他伪随机例程相关以获得一个好的数字生成器.另外,我不明白为什么我不应该将本机或库生成器作为numpy中的random.uniform(),在C++中使用rand().据我所知,我可以自己构建生成器,用于除均匀以外的分布(反向重分配函数方法,极坐标方法).但使用一个内置发电机进行均匀采样是不是很邪恶?

2默认的'时间'种子有什么问题?应该重新播种代码样本中的种子和频率(以及为什么)?

3也许你对这些主题有一些很好的联系!

--edit更准确地说,我需要多分量优化例程的随机数,以及统一空间样本来初始化一些其他优化例程参数.我还需要蒙特卡罗方法的随机数(敏感性分析).我希望精确有助于找出问题的范围.

c++ python random simulation probability

2
推荐指数
1
解决办法
2493
查看次数

如何在C中实现rand()/ srand()函数

可能重复:
rand()如何工作?它有一定的倾向吗?有没有比这更好用的东西?

我知道如何实现它.但是,我想了解rand在内部是如何表现的,为什么有必要初始化rand函数的'seed'值.

换句话说 - rand函数如何使用种子值生成随机数?

c random

2
推荐指数
2
解决办法
1万
查看次数

C++中的Random int

我只是在C++中编写下面的代码,但我有一个问题:它的随机数始终是相同的.. !! 这是我的代码和截图:

#include <iostream>
using namespace std;

int main() {
    cout << "I got a number in my mind... can you guess it?" << endl;
    int random;
    random = rand() % 20 + 1;

    cout << random << endl;
    system("pause");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

截图:http://tinyurl.com/n49hn3j

c++ random visual-studio

1
推荐指数
1
解决办法
3593
查看次数

C++中的Random()效率

我正在写函数,我需要找到1到10之间的随机数.最简单的方法之一是使用random()libc调用.我将使用这个功能很多.但我不知道它会有多高效.如果有人知道random()的效率会有帮助吗?

另外我注意到random()在2次运行中给出了相同的模式.

int main()
{
   for(int i=0;i<10;i++)
   {
    cout << random() % 10 << endl;     
   }
}
Run Code Online (Sandbox Code Playgroud)

输出第一次: - 3 6 7 5 3 5 6 2 9 1

第二次我也得到了相同的输出.

那么它是如何随机的?

c c++ linux random performance

0
推荐指数
1
解决办法
673
查看次数

标签 统计

random ×8

c++ ×6

c ×3

lcg ×1

linux ×1

performance ×1

probability ×1

python ×1

simulation ×1

srand ×1

visual-studio ×1