【发布时间】:2017-02-07 02:20:31
【问题描述】:
我有一个 2D 列表,我需要从这个 2D 列表中选择 n 不同的随机点(x,y 坐标)。让我先写一下当我试图解决这个问题时发生的事情。
假设网格是300 x 400。
- 笛卡尔积
300 x 400得到120000元素的列表,而不是使用random.choice(大网格慢) - 将所选点保留在一个集合中,如果产生重复点,则在 while 循环中再次随机化。 (如果 n 很大,则非常缓慢且不可预测)
我在 SO 中搜索了一些类似的问题,但都没有直接解决问题。我确实找到了This question,虽然用户回答了这个问题,但他们没有提供 Python 解决方案,我们可能会在这个问题中提出。如果不是代码本身,也许可以建议在 Python 标准库中使用适当的数据结构。
【问题讨论】:
标签: python algorithm random time-complexity