python - 在python中生成超出范围的随机数

标签 python random range

我目前正在开发一个 pygame 游戏,我需要在屏幕上随机放置对象,除非它们不能在指定的矩形内。有没有一种简单的方法可以做到这一点,而不是连续生成一对随机坐标直到它超出矩形?

这是屏幕和矩形的粗略示例。

 ______________
|      __      |
|     |__|     |
|              |
|              |
|______________|

其中屏幕尺寸为 1000x800,矩形为 [x: 500, y: 250, width: 100, height: 75]

一种更面向代码的查看方式是

x = random_int
0 <= x <= 1000
    and
500 > x or 600 < x

y = random_int
0 <= y <= 800
    and
250 > y or 325 < y

最佳答案

  1. 将盒子分成一组子盒子。
  2. 在有效的子框中,以与其面积成正比的概率选择将您的点放在哪一个
  3. 从选定的子框中随机均匀地选取一个随机点。

random sub-box

这将根据条件概率的链式法则,从有效区域上的均匀概率分布中生成样本。

关于python - 在python中生成超出范围的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33857855/

相关文章:

jquery - 网络驱动程序异常 : Message: unknown error: jQuery is not defined error in robot framework

python - spaCy NLP word.pos 返回数字而不是 POS 标签

c++ - 绑定(bind)到实例的确定性随机数生成器(独立于线程)

java - 在java中播种一个安全的随机数

c++ - 从数据列表生成随机序列的最快方法是什么?

python - 在 Python for 循环中更改范围会中断代码

python - 从声明返回 "str"的函数返回 Any,同时返回 Dict val

python - 实现具有固定键类型(例如枚举类型)的字典的最佳方法?

javascript - Bootstrap 4.3 Slider - 如何使用 jQuery 捕获幻灯片期间的事件?

jQuery-UI 日期和时间范围选择器