首页 > 解决方案 > 在 10 维单位球面上生成随机点

问题描述

我需要生成一个在单位球体上以 10 个方向(10 个随机数的集合)均匀采样的向量。因此,这 10 个值的平方和应为 1。

这是我需要生成这些点的确切问题:

实现 Perceptron 算法并在 ℝ<sup>10 中的以下合成数据集上运行它:pick ∗ = [1,0,0,…,0]; 通过在单位球面上随机均匀采样生成 1000 个点,然后删除边距小于 0.1 的点;生成标签 = 符号((*)T)。

标签: pythonrandom

解决方案


正如@Andrex 建议的那样,这是正确的解决方案:

import numpy as np
import math

s = np.random.normal(0, 1, 10)

norm=math.sqrt(sum(s*s))
result=s/norm

result答案在哪里。您可以评估结果:

sum([x*x for x in result])
1.0

推荐阅读