matlab求随机两点的距离,matlab – 生成3-d随机点,每个点之间的距离最小?

我仔细研究了你的算法,并得出结论,没有任何方法可以工作 – 至少如果你真的想在这个领域获得一百万分的话.有一个简单的图片解释了为什么不 – 这是你需要测试的点数(使用你的RSA技术)来获得一个额外的“好”点.正如你所看到的,这只是几千点的渐近(我运行了一个稍快的算法,反对200k点来产生这个):

我不知道你是否曾尝试计算你的球体中可以适合的理论点数,但是我已经开始怀疑这个数字比1E6小得多.

我用来研究这个的完整代码,加上它生成的输出,可以找到here.我从来没有达到我在之前的答案中描述的技术……在你描述的设置中还有太多其他的事情发生了.

编辑:

我开始认为,即使采用“完美”安排,也可能无法达到1M点.我为自己做了一个简单的模型如下:

想象一下,你从“外壳”开始(r = 25),并尝试以相等的距离拟合点.如果将“shell”的面积除以一个“排除磁盘”(半径为r_sub_crit)的区域,则可以得到该位置点数的(高)估计值:

numpoints = 4*pi*r^2 / (pi*(0.146 * r^(2/3))^2) ~ 188 * r^(2/3)

下一个“外壳”的半径应该小于0.146 * r ^(2/3) – 但是如果你认为这些点是非常仔细的排列,你可能会更接近一点.再说一遍,让我们慷慨,并说贝壳可以比标准更接近1 / sqrt(3).然后,您可以使用一个简单的python脚本从外壳开始并按照您的方式工作:

import scipy as sc

r = 25

npts = 0

def rc(r):

return 0.146*sc.power(r, 2./3.)

while (r > rc(r)):

morePts = sc.floor(4/(0.146*0.146)*sc.power(r, 2./3.))

npts = npts + morePts

print morePts, ' more points at r = ', r

r = r - rc(r)/sc.sqrt(3)

print 'total number of points fitted in sphere: ', npts

这个输出是:

1604.0 more points at r = 25

1573.0 more points at r = 24.2793037966

1542.0 more points at r = 23.5725257555

1512.0 more points at r = 22.8795314897

1482.0 more points at r = 22.2001865995

1452.0 more points at r = 21.5343566722

1422.0 more points at r = 20.8819072818

1393.0 more points at r = 20.2427039885

1364.0 more points at r = 19.6166123391

1336.0 more points at r = 19.0034978659

1308.0 more points at r = 18.4032260869

1280.0 more points at r = 17.8156625053

1252.0 more points at r = 17.2406726094

1224.0 more points at r = 16.6781218719

1197.0 more points at r = 16.1278757499

1171.0 more points at r = 15.5897996844

1144.0 more points at r = 15.0637590998

1118.0 more points at r = 14.549619404

1092.0 more points at r = 14.0472459873

1066.0 more points at r = 13.5565042228

1041.0 more points at r = 13.0772594652

1016.0 more points at r = 12.6093770509

991.0 more points at r = 12.1527222975

967.0 more points at r = 11.707160503

943.0 more points at r = 11.2725569457

919.0 more points at r = 10.8487768835

896.0 more points at r = 10.4356855535

872.0 more points at r = 10.0331481711

850.0 more points at r = 9.64102993012

827.0 more points at r = 9.25919600154

805.0 more points at r = 8.88751153329

783.0 more points at r = 8.52584164948

761.0 more points at r = 8.17405144976

740.0 more points at r = 7.83200600865

718.0 more points at r = 7.49957037478

698.0 more points at r = 7.17660957023

677.0 more points at r = 6.86298858965

657.0 more points at r = 6.55857239952

637.0 more points at r = 6.26322593726

618.0 more points at r = 5.97681411037

598.0 more points at r = 5.69920179546

579.0 more points at r = 5.43025383729

561.0 more points at r = 5.16983504778

542.0 more points at r = 4.91781020487

524.0 more points at r = 4.67404405146

506.0 more points at r = 4.43840129415

489.0 more points at r = 4.21074660206

472.0 more points at r = 3.9909446055

455.0 more points at r = 3.77885989456

438.0 more points at r = 3.57435701766

422.0 more points at r = 3.37730048004

406.0 more points at r = 3.1875547421

390.0 more points at r = 3.00498421767

375.0 more points at r = 2.82945327223

360.0 more points at r = 2.66082622092

345.0 more points at r = 2.49896732654

331.0 more points at r = 2.34374079733

316.0 more points at r = 2.19501078464

303.0 more points at r = 2.05264138052

289.0 more points at r = 1.91649661498

276.0 more points at r = 1.78644045325

263.0 more points at r = 1.66233679273

250.0 more points at r = 1.54404945973

238.0 more points at r = 1.43144220603

226.0 more points at r = 1.32437870508

214.0 more points at r = 1.22272254805

203.0 more points at r = 1.1263372394

192.0 more points at r = 1.03508619218

181.0 more points at r = 0.94883272297

170.0 more points at r = 0.867440046252

160.0 more points at r = 0.790771268402

150.0 more points at r = 0.718689381062

140.0 more points at r = 0.65105725389

131.0 more points at r = 0.587737626612

122.0 more points at r = 0.528593100237

113.0 more points at r = 0.473486127367

105.0 more points at r = 0.422279001431

97.0 more points at r = 0.374833844693

89.0 more points at r = 0.331012594847

82.0 more points at r = 0.290676989951

75.0 more points at r = 0.253688551418

68.0 more points at r = 0.219908564725

61.0 more points at r = 0.189198057381

55.0 more points at r = 0.161417773651

49.0 more points at r = 0.136428145311

44.0 more points at r = 0.114089257597

38.0 more points at r = 0.0942608092113

33.0 more points at r = 0.0768020649149

29.0 more points at r = 0.0615717987589

24.0 more points at r = 0.0484282253244

20.0 more points at r = 0.0372289153633

17.0 more points at r = 0.0278306908104

13.0 more points at r = 0.0200894920319

10.0 more points at r = 0.013860207063

8.0 more points at r = 0.00899644813842

5.0 more points at r = 0.00535025545232

total number of points fitted in sphere: 55600.0

无论你如何尝试,这似乎证实你真的无法达到一百万……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值