小编ybe*_*man的帖子

计算地在n球上选择一个随机点

我需要随机选择一个长度为1的n维向量.我最好的想法是在球体中选择一个随机点并将其标准化:

import random

def point(n):
    sq = 0
    v = []
    while len(v) < n:
        x = 1 - 2*random.random()
        v.append(x)
        sq = sq + x*x
        if sq > 1:
            sq = 0
            v = []
    l = sq**(0.5)
    return [x / l for x in v]
Run Code Online (Sandbox Code Playgroud)

唯一的问题是随着尺寸的增加,n球体积会变小,所以使用均匀分布random.random需要非常长的时间,即使很小的n也是如此.是否有更好(更快)的方法来获得随机点n维球面?

python random

5
推荐指数
1
解决办法
262
查看次数

CLMUL是恒定时间吗?

进位乘法指令是否在恒定时间内运行?换句话说,是独立于其参数执行所需的时间吗?

x86 assembly micro-optimization galois-field

2
推荐指数
1
解决办法
163
查看次数