当前位置:  开发笔记 > 小程序 > 正文

如何生成坏随机数

如何解决《如何生成坏随机数》经验,为你挑选了2个好方法。

我确信已经多次询问过相反的情况,但我找不到任何关于如何生成错误的随机数的答案.

我想编写一个用于聚类分析的小程序,并希望生成一些随机点进行测试.如果我只是用随机坐标插入1000个点,它们将分散在整个场地上,这将使得聚类分析毫无价值.

有没有一种简单的方法来生成构建集群的随机数?

我已经想过要么不使用random(),但random()*random()它产生正态分布数字(我觉得我读这个地方就在这里堆栈溢出).

第二种方法是随机选取几个区域并在该区域再次运行点生成,这当然会在该区域产生一个簇.

你有更好的主意吗?



1> winwaed..:

如果你故意生成格式良好的集群(而不是完全随机的集群),你可以将两者结合起来找到一个集群中心,然后在正常分布中围绕它放置很多点.

同样在笛卡尔坐标(x,y)中工作; 您可以使用径向方法为特定群集分配点.选择随机角度(0-2PI弧度),然后选择半径.请注意,由于圆周是比例半径,因此面积分布将更接近中心 - 但每个特定半径的分布将相同.修改径向分布以生成更紧密的群集.

或者您可以使用真实世界派生的数据进行自然聚类的半随机点分布.最近我一直在进行相当多的地理空间聚类分析.为此,我使用了现实世界的数据 - 邮政编码质心(在城市周围形成自然群集); 和餐厅的位置.另一个建议是:你可以使用恒星目录或银河目录.



2> Andrey..:

生成很少的锚点.真随机数.然后在它们周围产生噪音:

anchor + dist * (random() - 0.5))

这将生成聚类数字,它们将在距离上均匀分布dist.

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有