В моей задаче я должен создать базовый класс для представления четырех векторов (концепция в физике, включающая четырехмерный вектор), а затем создать производный класс специально для представления четырех импульсов частицы, которая наследуется от базового класса. Мне предоставлен небольшой фрагмент кода, который можно использовать для генерации «случайной» x и 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. Этот код возвращает единственное значение, и поэтому я не могу видеть, как он делает то, что он говорит в проблеме. Может ли кто-нибудь помочь мне понять, что делает этот код и как его можно использовать для создания трех составляющих импульсной величины. Спасибо, любезно.
Задача ещё не решена.