python随机点击坐标_python – 生成多个随机(x,y)坐标,不包括重复项?

这是Hank Ditton建议的一个变体,应该是更有效的时间和记忆,特别是如果你从所有可能的点中选择相对较少的点。这个想法是,每当产生一个新点时,其200个单位内的所有内容都将添加到要排除的一组点中,从而对所有新生成的点进行检查。

import random

radius = 200

rangeX = (0, 2500)

rangeY = (0, 2500)

qty = 100 # or however many points you want

# Generate a set of all points within 200 of the origin, to be used as offsets later

# There's probably a more efficient way to do this.

deltas = set()

for x in range(-radius, radius+1):

for y in range(-radius, radius+1):

if x*x + y*y <= radius*radius:

deltas.add((x,y))

randPoints = []

excluded = set()

i = 0

while i

x = random.randrange(*rangeX)

y = random.randrange(*rangeY)

if (x,y) in excluded: continue

randPoints.append((x,y))

i += 1

excluded.update((x+dx, y+dy) for (dx,dy) in deltas)

print randPoints

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值