Соревнование
Напишите программу или функцию, которая не требует ввода и выводит вектор длины в теоретически однородном случайном направлении.
Это эквивалентно случайной точке на сфере, описываемой
в результате чего такое распределение
Выход
Три числа с плавающей точкой из теоретически однородного случайного распределения, для которого уравнение выполняется в пределах точности.
Вызов замечания
- Случайное распределение должно быть теоретически однородным . То есть, если генератор псевдослучайных чисел заменить истинным ГСЧ из действительных чисел, это приведет к равномерному случайному распределению точек на сфере.
- Генерирование трех случайных чисел из равномерного распределения и их нормализация недопустимы: будет смещение в сторону углов трехмерного пространства.
- Аналогично, создание двух случайных чисел из равномерного распределения и использование их в качестве сферических координат недопустимо: будет иметь место смещение к полюсам сферы.
- Надлежащее единообразие может быть достигнуто с помощью алгоритмов, включая, но не ограничиваясь:
- Генерация трех случайных чисел , и из нормального (гауссовского) распределения около и нормализация их.
- Генерация трех случайных чисел , и из равномерного распределения в диапазоне . Вычислить длину вектора с помощью . Затем, если , отбросим вектор и сгенерируем новый набор чисел. Иначе, если , нормализовать вектор и вернуть результат.
- Генерация двух случайных чисел и из равномерного распределения в диапазоне и преобразование их в сферические координаты, например, так: так что,имогут быть вычислены как
- Предоставьте в своем ответе краткое описание используемого вами алгоритма.
- Узнайте больше о выборе точек на MathWorld .
Примеры вывода
[ 0.72422852 -0.58643067 0.36275628]
[-0.79158628 -0.17595886 0.58517488]
[-0.16428481 -0.90804027 0.38532243]
[ 0.61238768 0.75123833 -0.24621596]
[-0.81111161 -0.46269121 0.35779156]
Основные пометки
- Это код-гольф , поэтому ответ, использующий наименьшее количество байтов на каждом языке, выигрывает.
- Применяются стандартные правила , правила ввода / вывода и лазейки .
- Пожалуйста, включите ссылку Try it Online или эквивалентную, чтобы продемонстрировать, как работает ваш код.
- Пожалуйста, мотивируйте ваш ответ объяснением вашего кода.
pi/6 ≈ 0.5236
произвести вывод. Это площадь сферы, вписанная в единичный куб