- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在阅读 M.Mitzenmacher 和 E.Upfal 的“Probability and Computing”。我在理解如何计算两个元素的比较概率时遇到问题。
输入: 排序后的数字列表 (y1,y2,...,yN)。我们正在寻找枢轴元素(随机)。问题:比较两个元素yi 和yj (j>i) 的概率是多少?
答案(来自书本):如果在序列 (yi,yi+1,...,yj-) 的第一次抽取中选择 yi 或 yj 作为枢轴,则将比较 yi 和 yj 1,yj)。所以概率是:2/(j-i+1)。
我的问题是初始声明:例如,在第一次抽取时从整个列表中选择 yi 将导致与 yj 进行比较(反之亦然),概率为 2/n。
因此,“反向”声明是正确的——(yi+1,...,yj-1) 元素都不能在 yi 或 yj 之前被选择,但“池”大小不固定(在第一次绘制时它肯定是 N,但在第二次绘制时它更小)。
谁能解释一下作者是如何得出这样一个简化的结论的?
Edit1:一些好心人完善了我的帖子,谢谢 :-)。
Edit2:列表最初是排序的。
最佳答案
Quicksort 的工作原理是将每个元素与主元进行比较:大于主元的元素放在主元的右侧,不大于主元的放在左侧(或者相反,如果你想要降序排序,它不会'没关系)。
在每一步中,枢轴都是从序列(yi, yi+1, ..., yj)
中选择的。这个序列有多少个元素? j - i + 1
(我想你打错了,它不可能是 y - i + 1
)。
因此从这个列表中选择两个特定元素之一的概率显然是 2/(j - i + 1)
。
The problem for me is initial claim: for example, picking up yi in the first draw from the whole list will cause the comparison with yj (and vice-versa) and the probability is 2/n.
选择 yi
将导致它只与其他 j - i
元素进行比较。你从哪里得到 n
的?请记住,您的列表仅从 yi
到 yj
!
编辑:
再次阅读问题,我确实觉得它有点模棱两可。 在递归的第一步比较两个元素的概率确实如你所说的2/n
,因为i
和 j
为 1
和 n
。 在未知递归步骤比较两个元素的概率就是我在上面解释的。
关于algorithm - 随机快速排序 : probability of two elements comparison?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2750726/
我编写了一些图像分析软件,可以确定它认为是图像中最主要对象的基本形状、颜色和尺寸。 我还创建了一个对象数据库供算法选择: Item | Shape | Colors | Width range | H
我有一个仪器可以通过或失败一系列的三个测试。仪器必须通过所有三个测试才能被视为成功。我如何使用贝叶斯推理来查看基于证据的每个案例通过的概率? (基于依次通过每个过去测试的仪器)。 只看第一次测试 -
with Ada.Text_IO; use Ada.Text_IO; with Ada.Integer_Text_IO; use Ada.Integ
User-Item矩阵中的值是否可以是0和1之类的二进制值,表示“未购买” -vs-“已购买”? 而且,如果在矩阵上应用潜在因子模型,预测值(例如0.8)是否可以代表用户行为的概率(即,既没有购买也没
with Ada.Text_IO; use Ada.Text_IO; with Ada.Integer_Text_IO; use Ada.Integ
我正在尝试在遗传算法中实现非均匀概率分布。 在遗传程序的实现中,我有一个实验有 3 个结果,每个结果都有不同的概率。比方说,一个结果的概率是 0.85,另一个是 0.01,最后一个是 0.14? P.
我需要使用详细信息屏幕计算可能的结果数量。 详细信息是:我们有 1 个文本框,其中必须输入 0 到 7 之间的任何数字。结果有 13 个类别,但所有结果的平均值应等于在文本框中输入的数字。 例如:文本
一道面试题: 给定函数 f(x),1/4 次返回 0,3/4 次返回 1。用 f(x) 写一个函数 g(x),1/2 次返回 0,1/2 次返回 1。 我的实现是: function g(x) = {
我正在使用 Python 和 scikit-learn 处理具有不同分类器的多类分类问题。我想使用预测概率,基本上是为了比较特定情况下不同分类器的预测概率。 我开始阅读有关“校准”的内容,例如在 sc
我在 Tensorflow Probability 中使用混合多项式离散选择模型。该函数应在 3 个备选方案中进行选择。所选择的备选方案由 CHOSEN(#observationsx3 张量)指定。下
我正在尝试在远程虚拟机上启动Zookeeper。我经常在项目中使用它,并且在启动Zookeeper时没有任何问题。但是最近,当我尝试启动服务器时,出现了错误。 当我启动./zkServer.sh时,它
我有一个 Ghost++ 机器人,用于托管 DotA 游戏(魔兽争霸 3 map ,5 名玩家对 5 名玩家)。我试图想出好的公式来平衡根据他们的记录参加比赛的球员(我有几千场比赛的比赛历史)。我熟悉
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我无法理解 Tensorflow 概率中的双射器。如何使用它们。 standard_gumbel = tfd.TransformedDistribution( distribution=tfd.Exp
我编写了以下算法,旨在通过“强力”方法解决到达时间延迟问题。问题如下:给定三个接收器在一个平面中的已知位置以及某个信号的传播速度,请仅知道每个接收器“看到”信号的时间来确定信号源的位置。 该算法的工作
我刚刚安装了 Homebrew。当我运行 brew doctor 时,我得到了这个 Warning: Some directories in /usr/local/share/man aren't w
我刚刚在 cppreference 上阅读了一些关于 C++ 中的属性的内容.他们在那里提到了 probable(true) 属性,现在我想知道它有什么用。遗憾的是,我无法在网上找到更多信息。 这是处
我正在尝试 sample(),但是每当我在其中使用自定义概率时,它都会不断显示“不正确的概率数” 我已经尝试了几乎所有的东西,但仍然卡住了。请指导我我做错了什么.. 代码: sample(10:50,
我的软件在几个数据库上运行,所以我需要通用(值得注意的是,我认为“不同”的解决方案可能有效,但这不是标准的)。 假设我有两个表定义为: Table A: id, time (pk: id) Table
Closed. This question needs details or clarity。它当前不接受答案。 想改善这个问题吗?添加详细信息,并通过editing this post阐明问题。 7
我是一名优秀的程序员,十分优秀!