在我的问题中,我将创建一个基类来表示四个向量(物理学中涉及四维向量的概念),然后创建一个派生类,专门用于表示从基类继承的粒子的四个动量。我已经提供了一小段代码来生成一个随机的'动量大小的x y和z分量。代码如下
#include <cstdlib>
double triangular(double momentum){
double x, y;
do{
x = momentum*rand()/RAND_MAX;
y = x/momentum;
} while (1.0*rand()/RAND_MAX > y);
return x;
}
在我的问题中说,这段代码应该生成幅度,然后随机分成x,y和z分量。此代码返回单个值,因此我无法看到它是如何执行它在问题中所说的内容。有人可以帮助我理解这段代码的作用以及如何使用它来创建动量大小的三个组成部分。非常感谢你。