小编use*_*865的帖子

恒定的正确性和<random>

处理(否则)包含C++ 11随机类的随机生成器调用的常量函数的正确方法是什么?您是否应该放弃函数的常量标志,还是将生成器和分布声明为类的可变元素?一个最小的例子(不编译)可能是:

#include <random>

class foo 
{
  std::mt19937 MyGenerator;
  std::normal_distribution<precision_type> gauss;
  double get_rnd() const {return gauss(MyGenerator);}
};
Run Code Online (Sandbox Code Playgroud)

c++ random const mutable c++11

10
推荐指数
2
解决办法
1098
查看次数

C++ 11类<random>的发行版如何转换基础生成器?

以下代码似乎没有直观的行为:

#include <random>
#include <iostream>
using namespace std;

int main()
{

  mt19937 MyGenerator(40);
  auto gauss = normal_distribution<double>(0,1);
  auto linear = uniform_real_distribution<double>(0,1);
  cout << gauss(MyGenerator) << endl; //line a
  cout << linear(MyGenerator) << endl; //line b
  cout << gauss(MyGenerator) << endl;
}
Run Code Online (Sandbox Code Playgroud)

运行此代码可提供输出

-0.816097
 0.705030
 0.303032.
Run Code Online (Sandbox Code Playgroud)

如果现在交换行a和b的顺序,则输出变为

 0.644008
 0.338080
-0.639501.
Run Code Online (Sandbox Code Playgroud)

很明显,前两个数字现在是不同的,因为它们是由不同的分布产生的.不过,为什么第三个数字不同?在我的直觉中,分布应该获取一个数字c = MyGenerator(),然后将其映射到特定范围内的随机数.随机数生成器将指向分发调用之后的数字序列中的下一个数字.那么,在这两种情况下,第三次调用的结果不应该相同吗?

另一个观察结果:对其中一个发行版添加第四个调用实际上似乎会重现相同的数字.

c++ random c++11

7
推荐指数
2
解决办法
313
查看次数

如何在matplotlib中为圆圈指定颜色?

不知何故,为圆圈指定颜色与散点图中的颜色分配不同:

import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6,6)) # give plots a rectangular frame

N = 4
r = 0.1

pos = 2.*np.random.rand(N,2) -1

# give different points different color
col = 1./N*np.arange(0,N) 

# Method 1
for i,j,k in zip(pos[:,0],pos[:,1],col):
    circle = plt.Circle((i,j), r, color = k)
    fig.gca().add_artist(circle)   
plt.show()

# Method 2
plt.scatter(pos[:,0],pos[:,1], c = col)
plt.show()
Run Code Online (Sandbox Code Playgroud)

为什么方法2工作,而方法1给出以下错误:

ValueError: to_rgba: Invalid rgba arg "0.0"
to_rgb: Invalid rgb arg "0.0"
cannot convert argument to rgb sequence
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

标签 统计

c++ ×2

c++11 ×2

random ×2

const ×1

matplotlib ×1

mutable ×1

python ×1