加权随机图

2024-02-29

假设我有一个大的二维数组,其值范围在 [0,1] 范围内,其中 0 表示“不可能”,1 表示“极有可能”。

如何根据上述概率在该数组中选择一组随机点?


看待问题的一种方法是(暂时)忽略您正在处理二维网格的事实。你拥有的是一组加权的项目。从这样的集合中随机选择的标准方法是:

  1. 将权重相加,称为总和s
  2. 选择一个统一的随机值0 <= u < s
  3. 迭代项目,保持总计t您检查过的物品的重量
  4. 立刻t >= u,选择您当前正在查看的项目(您刚刚添加了重量的项目)。

可以通过添加以下步骤进行修改,以进行多项选择而不进行替换:

  • 每次选择后,从中扣除所选项目的重量s(如果您的权重是浮点并且稳定性是一个问题,您可能更愿意从头开始重新计算,至少偶尔如此)。

  • 从 2 开始重复,但在步骤 3 中跳过先前选择的项目。

如果对权重求和不可行或不受欢迎(如果您的数组特别大,则可能是这样),还有其他选择。第一个想到的是拒绝抽样,这是一个相当广泛的主题,所以我只会向您推荐有关该主题的谷歌和维基百科,因为它们的覆盖范围非常好。

编辑:忘记回到你有一个二维数组的事实。您可以通过预先计算(MIPMAP 样式)地图中区域层次结构的权重总和来显着加快速度,这样您就可以快速跳到实际选定权重的位置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

加权随机图 的相关文章

  • 如何获取常量内存中的统计数据

    我有一个函数 它会创建一些随机的数值结果 我知道 结果将是 a 小 a b 约 50 范围内的整数a b 我想创建一个执行上述函数 1000000 次的函数 并计算每个结果出现的频率 该函数使用随机生成器来生成结果 问题是 我不知道如何在常
  • 将整数列表划分为总和相等的 K 个子列表

    类似的问题还有1 https stackoverflow com questions 27322804 partition of a set into k disjoint subsets with equal sum and 2 http
  • StackOverflowError 计算 BigInteger 的阶乘?

    我正在尝试编写一个Java程序来计算大数的阶乘 它似乎BigInteger无法容纳这么大的数量 下面是我编写的 简单的 代码 public static BigInteger getFactorial BigInteger num if n
  • 为什么《破解编码面试》这个例子的时间复杂度是O(k c^k)?

    该问题来自 破解编码面试 第 6 版 问题 V1 11 以下代码打印长度为 k 的所有字符串 其中字符 是按排序顺序排列的 它通过生成所有长度的字符串来做到这一点 k 然后检查每个是否已排序 什么是运行时间 package QVI 11 P
  • 直观地执行不同的排序算法[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 快速排序应用程序中这些交换代码行的目的是什么?

    我试图理解快速排序的实现或应用程序以找到第 k 个最小元素 这是我试图理解的代码 public int quicksort int a int start int end int k if start lt end int pivot pa
  • 如何设计一种算法来计算倒数式数学数字难题

    我一直想这样做 但每次我开始思考这个问题时 它的指数性质都会让我大吃一惊 我希望能够理解的问题解决器和代码是针对倒计时数学问题的 给定一组数字 X1 到 X5 计算如何使用数学运算将它们组合起来生成 Y 您可以应用乘法 除法 加法和减法 那
  • 更合适地说插入未排序动态数组的摊销 O(1) 与 O(n) ?

    这属于 stackoverflow com help on topic 中的 软件算法 在本例中 是一种将项目添加到动态未排序数组的软件算法 This is chart we made in class about the runtimes
  • 极小极大算法

    我有一个关于 Minimax 算法的简单问题 例如 对于 tic tac toe 游戏 如何确定每个玩家玩的效用函数 它不会自动执行此操作 是吗 我必须对游戏中的值进行硬编码 它无法自己学习它们 不是吗 不 MiniMax 不会学习 它是暴
  • 处理流星中的长服务器端计算

    我正在使用 jimp https www npmjs com package jimp https www npmjs com package jimp 在meteor JS中生成图像服务器端 换句话说 我正在使用递归算法 计算 图像的像素
  • rand() 的实现

    我正在用 C 编写一些嵌入式代码 需要使用 rand 函数 不幸的是 控制器的库不支持 rand 我需要一个快速的简单实现 但更重要的是空间开销很小 可以产生相对高质量的随机数 有谁知道使用哪种算法或示例代码 编辑 它用于图像处理 因此 相
  • 从原点开始在离散 2D 网格上迭代向外螺旋的算法

    例如 这是预期螺旋的形状 以及迭代的每个步骤 y 16 15 14 13 12 17 4 3 2 11 18 5 0 1 10 x 19 6 7 8 9 20 21 22 23 24 其中线条是 x 轴和 y 轴 以下是算法每次迭代 返回
  • 数独算法,暴力破解[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • 分而治之算法找到两个有序元素之间的最大差异

    给定一个整数数组 arr 找出任意两个元素之间的差异 使得较大的元素出现在 arr 中较小的数字之后 Max Difference Max arr x arr y x gt y 例子 如果数组是 2 3 10 6 4 8 1 7 那么返回值
  • 是否有一种算法可以在线性时间内计算数组反转?

    我知道有多少倒转 en wikipedia org wiki Inversion 28discrete mathematics 29 in an n 元素数组可以在 O n log n 操作使用增强型归并排序 http www geeksf
  • 从 xgb.train() 获取概率

    我是 Python 和机器学习的新手 我在网上搜索了我的问题 并尝试了人们建议的解决方案 但仍然没有得到它 如果有人能帮助我 我将非常感激 我正在开发我的第一个 XGboost 模型 我已经使用 xgb XGBClassifier 调整了参
  • Java 2d 游戏中的路径查找?

    本质上它是我正在开发的一款吃豆人克隆游戏 我有一个 Enemy 类 并创建了该类的 4 个实例 它们都代表游戏的 4 个幽灵 所有幽灵都会在屏幕的随机区域启动 然后它们必须朝着吃豆人角色前进 当玩家控制吃豆人并移动它时 他们应该跟随它并尽可
  • 是否有加权水库采样的算法? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 当数据流中的点具有相关权重时 是否有一种算法可以执行水库采样 Pavlos Efraimidis 和 Paul Spirakis 的算
  • 如何光栅化旋转矩形(通过 setpixel 在 2d 中)

    我有四个 2d 顶点 A B C D 的旋转矩形 我需要在像素缓冲区中 有效地 光栅化 绘制它 使用 setpixel x y 颜色 怎么做 我正在尝试使用一些代码 例如 convertilg a b c d do up down left
  • 我可以有效地从 HashSet 中随机采样吗?

    我有一个std collections HashSet 我想采样并删除一个均匀随机的元素 目前 我正在做的是使用随机抽样索引rand gen range 然后迭代HashSet到该索引来获取元素 然后我删除选定的元素 这可行 但效率不高 有

随机推荐

  • C++ 在张量流中使用 Eigen

    张量流和特征值之间有什么关系 特别是关于tensor数据结构 有一些较旧的引文 例如 其中指出tensorflow正在广泛使用Eigen 据我所知 tensorflow人员已经扩展了Eigen代码 然而 最近的张量流文档似乎没有明确提及 E
  • SQL 2008 中的内存不足异常

    关于SQL Server 2008中Out of Memory异常 当我执行向表中插入数千行的大型查询时 执行此操作时发生的异常是 System OutOfMemoryException 根据一篇非常好的微软知识库文章 链接在这里 http
  • 如何获取 MongoDB 中的所有文档 ID?

    如何获取 MongoDB 中所有文档 ID 的数组 我只需要一组 id 但不需要文档内容 您可以通过调用在 Mongo shell 中执行此操作map http docs mongodb org manual reference metho
  • 为 MVC 应用程序添加尾部斜杠

    我正在构建一个基于 MVC 设计模式的应用程序 我希望我的 URL 如下 http example com page action http example com page action 我成功地让它与下面的代码一起工作 但如果 URL
  • 如果我要将文件内容读入数组,是否需要初始化数组?

    我正在初始化buf在立即用以下内容重写其内容之前不必要地全为零read exact fn parse
  • 在 Python 代码中使用 Git 命令

    我被要求编写一个脚本 从 Git 中提取最新代码 进行构建并执行一些自动化单元测试 我发现有两个内置的 Python 模块可以随时使用 用于与 Git 交互 GitPython and libgit2 我应该使用什么方法 模块 更简单的解决
  • 在输入类型=“文本”中键入时跟踪 onchange 的最佳方法?

    在我的经验中 input type text onchange事件通常仅在您离开后发生 blur 控制 有没有办法强制浏览器触发onchange每次textfield内容变化 如果不是 那么 手动 跟踪这个最优雅的方法是什么 Using o
  • 在 Razor 中将视图模型属性编码为 JavaScript

    我有一个简单的视图模型 public class IndexViewModel public bool ShowWelcomeMsg get set 在我看来 我需要 JS 中的这个属性 但这是不正确的 因为它输出False代替false但
  • 使用PyQt5嵌入动态条形图

    我在 python 中编写了以下代码 以在生成的 GUI 中显示条形图PyQt5 import sys from PyQt5 QtWidgets import QDialog QApplication QPushButton QVBoxLa
  • Libgdx ModelBuilder.createRect 仅从一侧可见

    在我的第一个 libgdx 3D 游戏中 我现在从createBox to createRect 仅创建可见面 如果一堵墙位于另一堵墙的左侧 则其右面不可见 我正在创建 4 个模型 frontFace backFace rightFace
  • 如何在React-native ListView中过滤数据?

    我正在尝试过滤数组对象列表 然后尝试使用新的数据源在 ListView 中显示 但是 该列表并未被过滤 我知道我的过滤功能工作正常 我在console log中检查过 我正在使用 Redux 将状态映射到 prop 然后尝试过滤道具 这是错
  • SignalR 和序列化对象数组

    我是 SignalR 的新手 并且已经完成了一个简单的测试 hack 我希望用类型化对象序列化对象数组 默认情况下 SignalR 已将 Json NET 序列化器配置为不提供类型信息 我发现我可以通过以下方式在 DependencyRes
  • 无法执行操作。计算替代解决方案,可能需要一段时间 STS?

    我想问一下添加新的时候出现这个错误是什么意思Available Software Site并使用 Eclipse STS Spring Tool Suite 安装新软件Install New Software 我遇到这个问题Spring T
  • 使用 new(Integer) 与 int

    在我的 Java 课上 教授使用了类似的内容 integerBox add new Integer 10 这和刚刚做的一样吗 integerBox add 10 我用谷歌搜索了一下 但找不到一种方法或另一种方法 而且教授也很含糊 我能找到的
  • 查找特殊字符之间的文本并替换字符串

    例如我有一个字符串包含 String s test string 67 Hi 我想得到这个字符串 67 有了星星 我就可以开始替换那部分字符串了 我现在的代码如下所示 String s test string 67 Hi s s subst
  • 如何拦截和抑制 TFrame 子组件的消息?

    我需要拦截WM PASTE message https stackoverflow com questions 10158861 how to intercept detect a paste command into a tmemo 10
  • Java/JSP WEB-INF/类无法导入

    自从我不得不做一些 Java JSP 以来已经有一段时间了 我在 WEB INF classes MyClass java 中有一个 java 类 Netbeans 中的构建成功 我可以在类文件夹中看到 MyClass class 在我的j
  • MariaDB Connector/Python 需要 MariaDB Connector/C >= 3.2.4,发现版本 3.1.14

    Ubuntu 20 04 需要版本 3 2 4 否则 pip3 install mariadb 是不可能的 pip3 install mariadb gt Collecting mariadb Using cached mariadb 1
  • 摇动后停止 Android 加速计

    我想听一下摇晃声 然后完全停止加速度计并转到另一项活动 遗憾的是我没有找到任何方法来做到这一点 即使我计算一个变量并使用简单的 如果 进行检查 每次检测到震动时它总是会再次加载新的活动 请帮助我解决我的不理解 Override protec
  • 加权随机图

    假设我有一个大的二维数组 其值范围在 0 1 范围内 其中 0 表示 不可能 1 表示 极有可能 如何根据上述概率在该数组中选择一组随机点 看待问题的一种方法是 暂时 忽略您正在处理二维网格的事实 你拥有的是一组加权的项目 从这样的集合中随