相关疑难解决方法(0)

均匀地在球体上分布n个点

我需要一个算法,可以给我一个球体周围的位置N点(可能小于20),模糊地将它们展开.没有必要"完美",但我只是需要它,所以没有一个被捆绑在一起.

  • 这个问题提供了很好的代码,但是我找不到制作这种制服的方法,因为这似乎是100%随机化的.
  • 这个博客文章推荐有两种方式允许输入球体上的点数,但Saff和Kuijlaars算法完全是我可以转录的伪代码,我发现的代码示例包含"node [k]",我不能看到解释并破坏了这种可能性.第二个博客的例子是黄金分割螺旋,它给了我奇怪的,褶皱的结果,没有明确的方法来定义恒定的半径.
  • 这种算法这个问题好像它可能工作,但我无法拼凑出那是什么网页上成伪代码或任何东西.

我遇到的一些其他问题主题是随机均匀分布,这增加了我不关心的复杂程度.我很抱歉这是一个如此愚蠢的问题,但我想表明我真的很努力,但仍然很短暂.

所以,我正在寻找的是简单的伪代码,可以在单位球体周围均匀分布N个点,这些点可以返回球形或笛卡尔坐标.如果它甚至可以通过一点随机分布来更好(想想围绕恒星的行星,分散得很好,但有余地的余地).

python algorithm math geometry uniform

110
推荐指数
8
解决办法
8万
查看次数

伪随机数发生器 - 指数分布

我想生成一些伪随机数,直到现在我一直非常满意.Net库的Random.Next(int min, int max)功能.这个品种的PRNG 应该使用Uniform分布,但我非常希望使用指数分布生成一些数字.

我正在用C#编程,虽然我会接受伪代码或C++,Java等.

任何建议/代码片段/算法/想法?

language-agnostic random algorithm exponential-distribution

57
推荐指数
4
解决办法
7万
查看次数

随机数发生器产生幂律分布?

我正在为C++命令行Linux应用程序编写一些测试.我想生成一堆具有幂律/长尾分布的整数.意思是,我经常得到一些数字,但大多数都是相对不频繁的.

理想情况下,我可以使用rand()或其中一个stdlib随机函数.如果没有,一个易于使用的C/C++块将是伟大的.

谢谢!

c++ random math power-law

28
推荐指数
3
解决办法
2万
查看次数

生成分布在单位球体表面上的点的随机样本

我试图使用numpy在球体表面上生成随机点.我已阅读,解释均匀分布后在这里.但是,需要关于如何仅在球体表面上生成点的想法.我有坐标(x,y,z)和每个球体的半径.

我不是很熟悉这个级别的数学,而是试图理解蒙特卡罗模拟.

任何帮助都感激不尽.

谢谢,帕林

python geometry numpy random-sample uniform-distribution

16
推荐指数
2
解决办法
2万
查看次数

如何使用 Python 从 3-D 椭球生成点的随机样本?

我试图从 3-D 椭球体中均匀采样大约 1000 个点。有没有某种方法可以对其进行编码,以便我们可以从椭球方程开始获得点?

我想要椭球体表面上的点。

python random math geometry ellipse

5
推荐指数
2
解决办法
3926
查看次数

如何使用MATLAB在球体内生成随机点

我尝试使用以下命令在center中生成随机点,使用以下命令

no_of_spots = 3000
radius=20
rvals = (2)*rand(no_of_spots,1)-(1);
elevation = asin(rvals);
azimuth = 2*pi*rand(no_of_spots,1);
radii = rand(no_of_spots,1)*radius;
[point_x,point_y,point_z] = sph2cart(azimuth,elevation,radii);
Run Code Online (Sandbox Code Playgroud)

我得到了结果 随机点的球体

从图中可以看出,随机点集中在原点附近,即看起来像高斯分布.我需要在球体内均匀分布的随机点,或者需要将点的浓度从中心移到另一点.我怎么能这样做/任何人都可以帮助/提前谢谢,Manu

random matlab distribution

4
推荐指数
1
解决办法
451
查看次数

如何在 Three.js 中用随机粒子填充球体

我读到了关于用粒子随机填充球体表面的优秀问题:How to make a sphere made out of random keywords in Three.js。如何用随机生成的粒子填充球体的总体积?我尝试一下:

var particleCount = 1800,
  particles = new THREE.Geometry(),

  pMaterial = new THREE.PointCloudMaterial({
    color: 0xFFFFFF,
    size: 20,
    map: THREE.ImageUtils.loadTexture(
      "images/particle.png"
    ),
    blending: THREE.AdditiveBlending,
    transparent: true
  });

for (var t = 0; t < particleCount; t++) {
  var angle3 = Math.random() * Math.PI * 2;
  var radius3 = Math.random() * 350 + 1;
  var pX1 = Math.cos(angle3) * radius3,
    pY1 = Math.random() * 70 - …
Run Code Online (Sandbox Code Playgroud)

three.js

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

在多维环中均匀采样而不会拒绝

这个问题中的算法告诉我们如何有效地从多维球中采样。有没有办法从多维环中同样有效地采样,即有r1<r<r2

我希望对该缩放函数进行不太复杂的修改 r*(gammainc(s2/2,n/2).^(1/n))./sqrt(s2)是可能的。(平庸免责声明:甚至还没有想出原始缩放函数的代数/几何)。

原始matlab代码复制粘贴:

function X = randsphere(m,n,r)

% This function returns an m by n array, X, in which 
% each of the m rows has the n Cartesian coordinates 
% of a random point uniformly-distributed over the 
% interior of an n-dimensional hypersphere with 
% radius r and center at the origin.  The function 
% 'randn' is initially used to generate m sets of n 
% random variables with independent multivariate 
% normal distribution, …
Run Code Online (Sandbox Code Playgroud)

python random matlab geometry uniform-distribution

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