java - How to generate some identically distributed pseudo-random vectors with a fixed length r in a programming language? -


for example, dimension d=2, means generate random angle 0<=a<2*pi, , use

(x_1,x_2)=(r*cos(a),r*sin(a)) random vector.

however, dimension d>=3, not generate angle , use represent vector. how generate such vector (x_1,...,x_d), identically distributed on x_1^2+x_2^2+...+x_d^2=r^2?


i have come new idea, generate vector (x_1,...,x_d) such -r<=x_i<r i, normalize if x_1^2+x_2^2+...+x_d^2<=r^2 , abondon if x_1^2+x_2^2+...+x_d^2>r^2.

however, there drawback probability x_1^2+x_2^2+...+x_d^2<=r^2 become small if d large. there exist better solutions?

generate random variables (x_1, x_2, ... x_d) independent , have standard normal distributions, , normalize dividing sqrt(x_1^2+...+x_d^2)/r.

that joint distribution of independent normal distributions rotationally symmetric not true, characterizes normal distributions.

you can generate pairs of independent variables standard normal distribution efficiently uniform random variables using box-muller transform.


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -