【发布时间】:2020-04-14 01:53:26
【问题描述】:
我将 GetRandom() 函数用于 TF1 类型 (Root library) 函数,但无法使其正常工作。 两者在这个例子中:
TF1* f1 = new TF1("f1", "30+x", 0.2*M_PI, 0.5*M_PI);
for(int i = 0; i < N; i++) {
cout << f1->GetRandom(0.2*M_PI, 0.5*M_PI) << endl;
}
还有这个例子:
TF1* f1 = new TF1("f1", "cos(x)", 0.2*M_PI, 0.5*M_PI);
for(int i = 0; i < N; i++) {
cout << f1->GetRandom(0.2*M_PI, 0.5*M_PI) << endl;
}
我得到这样的输出:
1.31227
0.933722
0.915021
1.52884
0.83633
1.55911
0.73908
这与我预期的值不符。在第一个示例中,我希望它输出介于 30.6 和 31.8 之间的数字,而第二个示例输出介于 0 和 0.8 之间的数字。 我是否误解了 GetRandom 函数的作用或其他错误?
【问题讨论】:
-
什么是
TF1?一些TensorFlow类型或你写的东西? -
@KorelK 它是根库的类部分,来自 CERN。 root.cern.ch/doc/master/classTF1.html
-
注意你用
root标记了这个问题,这里指的是unix root用户和这个Root库。 -
@KorelK 我添加了正确的标签。老实说,我很惊讶 unix 用户
root获得了标签的优先权。作为标签,它并没有真正的用处。 -
@guia4273 我自己不使用 ROOT,但文档指出
GetRandom返回随机值,其分布由曲线指定。它并不是说将随机的x值插入到公式中。
标签: c++ root-framework