Hacker News new | ask | show | jobs
by machiavelli1024 2874 days ago
>Let me know if I am wrong.

You're wrong on multiple levels.

1. Generating random values for x^2, y^2, z^2 and taking their square root will only give you values in the x,y,z > 0 octant.

(But let's say you "fix" this by randomly multiplying them with -1.)

2. Taking the square root of a uniformly distributed random variable is no longer uniformly distributed.

3. Randomly reordering the coordinates won't fix your bias.

Here's a demonstration in 2D: https://jsfiddle.net/tz85wnxy/59/

Uncomment line 17, 18, 20 to see how it's still not uniform even if you randomly multiply the coordinates by -1 and reorder them.

1 comments

Works fine as long as you generate x,y,z randomly and not their squares.

Same process but minor tweak.

https://jsfiddle.net/w8zLvsy2/

This approach is still incorrect, and the bias toward the set of 4 points S = {(1,0),(-1,0),(0,1),(0,-1)} can be seen in the diagram. There is no way to break out of this bias by flipping or reordering coordinates because those two operations preserve the symmetries of S:

- if you flip the x-coord of a point near S, e.g. (-.9,0), you still get a point near S, e.g. (.9,0)

- if you swap the x-coord and y-coord of a point near S you still get a point near S.

- etc.