단위 구에서 임의의 점을 선택하려고하는데 부스트가 정확히 이것을하는 분포를 제공한다는 것을 알았습니다. 하지만 사용하려고하면 생성 된 모든 값은 nan
입니다. 내가 뭘 잘못하고 있는지 모르겠다. 내게 계몽 해 주겠니? 이 작은 코드는 내가 뭘하려고 오전 묘사 :boost :: uniform_on_sphere 사용하는 방법?
#include <iostream>
#include <fstream>
#include <vector>
#include <boost/random/mersenne_twister.hpp>
#include <boost/random/uniform_on_sphere.hpp>
int main()
{
boost::mt19937 gen;
boost::uniform_on_sphere<float> dist(3);
{ // Seed from system random device
std::ifstream rand_device("/dev/urandom");
uint32_t seed;
rand_device >> seed;
gen.seed(seed);
}
while(1) {
// Generate a point on a unit sphere
std::vector<float> res = dist(gen);
// Print the coordinates
for(int i = 0; i < res.size(); ++i) {
std::cout << res[i] << ' ';
}
std::cout << '\n';
}
}
출력은 다음과 같습니다
nan nan nan
nan nan nan
nan nan nan
nan nan nan
광고 인해서
...
코드 (무한 루프없이 부스트 1.48 물론 사용) 나를 위해 잘 작동합니다. 나는 당신의 버젼의 버젼에 버그가 있다고 생각합니다. –