问题标签 [median]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
676 浏览

excel - 中位数计算为零 (VBA) 时崩溃(程序无响应)

当我使用 VBA 计算数组的中值时,Excel 2010 崩溃(Windows XP 说 Excel“没有响应”)出现问题,在中值函数计算为零的情况下。不幸的是,该问题仅在特定代码集的上下文中是可重现的(当我尝试编写简化版本以进行调试时,该问题不会发生)。尽管如此,我认为由于以下原因,有人会发现这个问题很有趣。

调用 application.worksheetfunction.median 时发生崩溃。VBA 无法通过该调用。这不是随后跳水为零的问题。

即使数组非常小(例如,8)也会发生崩溃。

我发现一个有效的解决方法是为每个数组项添加一个小常数,然后计算中位数,然后立即从每个数组值中减去该常数。这似乎产生了一个正确的答案。但令我担心的是 Excel 需要这种解决方法。

另一个涉及排序的工作表函数也会出现此问题:百分位数函数。

0 投票
1 回答
566 浏览

excel - 如何找到两行差异的中位数?

我在 Excel 的两个不同工作表中有两行。每行有 20 个元素。我需要找到这两行中相应元素的差异的中位数。我希望这个输出只在一个单元格中。我不想在我的结果中添加另一行。

我有:

我需要:

0 投票
1 回答
1873 浏览

algorithm - 中位数选择算法 - 它是否找到绝对中位数,或接近绝对中位数的“中位数中位数”?

CLRS 第 3 版“最坏情况线性时间的选择”中的第 9.3 节讨论了“选择”算法(由于 Blum、Floyd、Pratt、Rivest 和 Tarjan,有时称为 BFPRT 算法)用于在 O 中查找列表的中值(n) 最坏情况下的时间。当我试图在白板上运行示例时,我有点困惑。我知道每次调用“Select”时可以消除一定数量的元素(我读过 30% 被消除,而 70% 需要再次检查),我感到困惑的是数组的哪一部分可以是消除,即如果数组被可视化为高度为 5 和宽度为 n/5 的矩阵,那么消除的元素位于哪个象限?我最初认为它是两个对角相邻的象限,但现在我认为它只是一个象限,具体取决于中位数的中位数是多少(参见步骤 5、6 和 7在这里)。

所以我去维基百科看看是否有一个比CLRS分析更少的快速解释(为了在我跳回CLRS进行分析之前理解算法)。我想到了这一点,特别是“最后,选择“中位数的中位数”作为支点。” 从维基百科中描述的声音来看,“选择”没有找到真正的中位数,而是一个足够中位数的元素,用于选择快速排序的枢轴。

那么“选择”在真正的中位数方面做了什么,它是如何做到的?通过所有这些想到的短语是“部分层次结构”,据我所知,这就是“选择”起作用的原因,但是根据这个部分层次结构,你可以通过什么逻辑从列表中删除元素而不是中间值?

0 投票
1 回答
202 浏览

mysql - 解释以前回答的帖子的解决方案:在 MySQL 中查找中位数

我需要计算 MySQL 中的中值。我在这里看到了解决方案。

但是,我没有理解其中的一部分。此处输入代码提供的解决方案如下:

在原始问题的背景下是data x什么?data y通常 FROM 后跟表名。但是,当问题仅涉及一个时,为什么列出 2 个表?有人可以解释这个解决方案是如何工作的吗?另外,我不明白这部分:HAVING SUM(SIGN(1-SIGN(y.val-x.val))).

0 投票
1 回答
2055 浏览

algorithm - 如何在 O(logn) 时间内找到 5 个排序列表的中位数?

这是问题:

有5个排序列表A,B,C,D,E,它们的长度相同。问题是找到一种算法,可以在 O(logn) 时间内对这 5 个列表进行中位数。我正在考虑一个一般性的想法,但我无法弄清楚它所需要的确切复杂性。

假设 A,B,C,D,E 的中位数是 a,b,c,d,e。我们有a<b<c<d<e。很明显,我可以丢弃数组 A 的前半部分和数组 E 的后半部分。现在我有 5 个新数组:B、C、D 保持不变,每个都有 n 个数字;A' 和 E' 各有 n/2 个数字。然后我将 A' 和 E' 的中位数计算为 a' 和 e',将它们与 b、c、d 进行比较。如果 5 个中位数的新顺序是a'<b<e'<c<d,那么我通过去掉 a' 的前半部分(n/4 个数字)和数组 D 的最后 n/4 个数字,因为我们需要在最后的两边扔掉相等的数字中位数。过程继续...

我有一种感觉,算法是O(logn)。但我不知道确切的证据。在第一个 logn 步骤中,我们肯定可以将候选数减少到 3n,将 5 个列表的所有剩余数字相加。第一次我们踢出 n 个号码,第二次踢出至少 n/2 个号码,第三次踢出 n/4 个号码,以此类推。但是,在我得到 3n 个剩余数字后,我不知道如何分析。

这个算法真的可以给我 O(logn) 吗?

0 投票
1 回答
2905 浏览

sql-server-2008-r2 - 如何在 SSRS 2008 R2 中计算组的中位数

我正在使用 SSRS 2008 R2 在我的项目中做一些报告,在我的一份报告中,我想显示登录持续时间的中位数以及平均总数等,并且用户按地区和国家分组,我希望中位数为那个组。

我试过以下链接

http://blogs.msdn.com/b/robertbruckner/archive/2008/07/20/using-group-variables-in-reporting-services-2008-for-custom-aggregation.aspx

但是在这里我只得到整个登录持续时间的中位数,而不是分组项目的中位数,所以所有中位数都是相同的。对于不同的地区或国家的不同群体,它应该是不同的。

0 投票
1 回答
12234 浏览

c - C语言中的众数、中位数、均值、标准差、方差计算器

试图编写这个小程序来帮助我在我的统计课上,除了中位数之外,一切似乎都在相应地计算。我错过了什么?

如果有人也愿意为我做方差函数,则额外加分 x)。

使用 GCC 编译器运行 OSX。

0 投票
2 回答
8681 浏览

image - 在 Matlab 中计算中值图像

我是matlab的新手,所以如果我在这里要求显而易见的事情,请原谅我:我所拥有的是一组彩色摄影图像(所有相同的尺寸)。我想要做的是计算每个像素的颜色中值

我知道matlab中有一个中值滤波器,但据我所知,它并不能完全满足我的要求。因为我想为每个单独的像素计算整个图像集合之间的中值。

例如,如果我有三个图像,我希望 matlab 计算(对于每个像素)这三个图像中的哪个颜色值是中值。我该怎么做呢,有人知道吗?


编辑:据我所知,我必须将所有图像加载到一个矩阵中。矩阵必须有 4 个维度(高度、宽度、rgb、图像),并且对于每个像素和每种颜色,找到第 4 个维度(图像之间)的中值。这是正确的(并且可能)吗?我该怎么做?

0 投票
4 回答
4777 浏览

javascript - 中位数的中位数 - 这是可能的还是有不同的方法

目前,我每天都在汇总大量数据,并且每天我都在计算当前值的中位数。现在我需要将所有这些每日结果汇总到每月的基础上,当然我需要再次计算中位数。

有没有办法计算中位数的中位数并使其在统计上正确?我想避免再次使用原始数据,因为它的数量很大:)

作为一个小的概念证明,我制作了这个 javascript - 也许它有助于找到一种方法:

正如您将看到的,所有原始数字的中位数和中位数的中位数之间通常有一个巨大的上限,我希望它彼此非常接近。

非常感谢!

0 投票
2 回答
34692 浏览

c - 计算平均中值模式 c 编程数组

我有这个家庭作业,要求用户输入数字,然后计算平均中位数和众数,然后询问他/她是否想再玩一次,或者重复该程序或退出。一切都编译了,但我似乎可以找出一些错误的地方:

平均值有效。中位数没有。如果整数数组的长度是偶数,即数组中有 4 个数字,则中位数应该是中间两个数字的平均值。因此,如果数字依次为“1、3、5、6”,则中位数应为 4.000000。该模式也不起作用,当被要求“再次播放”时?任何答案都会导致程序突然退出并崩溃。有人可以帮我找出平均中位数模式计算中的错误,并帮助我处理菜单吗?

输出应该是这样的: