精华内容
下载资源
问答
  • JS中求中位数方法

    2021-05-02 09:01:56
    下面这段代码可以求中位数 const mid = left + right >>> 1;

    方法一:通过零填充右移位

    const mid = left + right >>> 1;
    

    方法二:通过Math.floor

    const mid = Math.floor((left + right) / 2);
    
    展开全文
  • 海明码 校验位数公式的理解

    千次阅读 2021-04-15 12:23:32
    设海明码的校验位数为,数据位数为,它们需满足一个位数公式 最初看到公式时我感到很疑惑啊,百思不得其解,主要的问题是最后那个1哪来的。 看着公式望了半天,一点头绪都没有,好脑袋不如烂笔头,于是我开始...

    #问题

    设海明码的校验位数为k,数据位数为x,它们需满足一个位数公式

    2^k\geq k+x+1

    最初看到公式时我感到很疑惑啊,百思不得其解,主要的问题是最后那个1哪来的。

    看着公式望了半天,一点头绪都没有,好脑袋不如烂笔头,于是我开始手写举例试着理解海明码的校验逻辑。

    不写不知道,一写吓一跳。写着写着就发现了,原来这个1来的如此妖娆。

    #引入(海明码原理介绍)

    我们先来复习一下二进制的划分,假设现在有七位二进制数据x_1\rightarrow x_7,用n_1\rightarrow n_7序号来指向。为什么选择七位呢?因为它们的序号刚好可以用三位二进制来表示。


    我们再来看看海明码的纠错方法。

    表示序号的三个二进制位,每一个二进制位取值为1的序号个数都是4个(图中列标红)。这冥冥之中的平衡一定可以好好利用。

    我们分别把二进制3-1列取值为1的序号纳入集合A、B、C。

    则集合取值

    A={7,6,5,4}

    B={7,6,3,2}

    C={7,5,3,1}

    有一种大家很熟悉,校验一个序列值的方法叫做奇偶校验,偶校验计算方式是序列中所有值异或为0。

    如果我们按照A、B、C的集合来分类,每个集合都进行偶校验,就可以得到3个偶校验值,它们需要等于0。由于x_1\rightarrow x_7是固定的,所以A、B、C需要作为校验位参与运算。也就是需满足

    A \oplus x_7 \oplus x_6 \oplus x_5 \oplus x_4=0

    B \oplus x_7 \oplus x_6 \oplus x_3 \oplus x_2=0

    C \oplus x_7 \oplus x_5 \oplus x_3 \oplus x_1=0

    根据异或运算的性质,自己与自己本身异或为0。所以可以得到A、B、C的计算公式

    A =x_7 \oplus x_6 \oplus x_5 \oplus x_4

    B = x_7 \oplus x_6 \oplus x_3 \oplus x_2

    C= x_7 \oplus x_5 \oplus x_3 \oplus x_1

    海明码考虑的情况是一位纠错。当某一位出错后,A、B、C和它们对应集合数据位的异或就不再是本身与本身的异或,并且最终结果会变为1。

    也就是说,接收到数据后,若A \oplus x_7 \oplus x_6 \oplus x_5 \oplus x_4=1,则表示A对应集合有一位元素数据位出错了(集合对应的元素就是一列中二进制表示为1的元素)。同理,最后运算结果为0的集合对应的元素是没有问题的,这样就可以筛查出是具体哪一位元素出错,从而进行纠错。

    比如n_5出错,那么A=1代表第一列元素出错,B=0代表第二列元素没错,C=1代表第三列元素出错。满足所有交集的元素只有一个,也就是被筛查出来的n_5。可以看见这种方法非常直接,因为将ABC排列成二进制数,所代表的序号就是出错的那一位。

    如下图,红色方块代表本列有出错元素,A列确定了n_7,n_6,{\color{Red} n_5},n_4,C列确定了n_7,{\color{Red} n_5},n_3,n_1,交集{\color{Green} n_7},{\color{Red} n_5};而绿色方块代表一定没有出错的元素,B列排除了{\color{Green} n_7},n_6,n_3,n_2。随后n_5就被筛选出来了。

    #探明

    在上面讲述海明码纠错过程中,可能有同学已经发现问题所在了。

    我们新增了三位校验位,可是只对七位数进行了纠错。

    所以公式里的那个1,其实来自于我们没有画出的序号0!

    我们回望A、B、C的分类,每一集合都有4个元素,看似非常规律,似乎冥冥之中决定了我们可以使用海明码这样的纠错方式。

    偏偏卦不可算尽,虽然每集合都有4个元素,但元素的分布律不是均等的,不仅不是均等的,还遗漏了一个0。

    所以k个校验位,虽然能表示2^k个序号,但最终只能带来2^k-1的纠错能力。

    同时我们需要将校验位加入传输数据,也就是真正的有效数据x需满足x+k\leq 2^k-1


    #ps 会什么会少一个呢?其实很简单,只要理清楚概念。k个校验位,输出的序列(比如ABC),含义是第ABC(二进制)个序号的数值有错,而不是总共有多少个数字之类。所以看看000代表的含义就知道少掉的一种情况去哪了——它代表序列校验正确。

    #pps 海明码校验位的位置在这个问题上没有啥作用,最初我觉得它一定有什么深层含义,想了半天也没想出什么

    #ppps 或许以后有时间还可以写篇博客,叫做《海明码的哲学原理》。

     

     

    展开全文
  • hive求解中位数的几种方法前言两种解法解法1:利用中位数的位次特征解法2:利用升序与降序的差值解法2.1:延伸问题参考文章合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片...

    前言

    假设我们有一张学生成绩表student_score,里面有三个字段:学生id:student_id,班级id:class_id,成绩:score,主键为student_id。现在让你求出每个班级学生成绩的中位数。

    虽然hive里有内置的percentile()和percentile_approx()函数直接求解分位数,但在面试中,面试官老爷大概率不会让你直接就这么写,而是在你自信满满刷刷刷写完之后告诉你“哦,我们不能用内置函数”。

    两种解法

    谈到中位数,自然而然容易想到要先排序,然后根据个数的奇偶,如果是奇数个就取中间一位,如果是偶数就取中间两位的平均。关于排序,我们可以使用窗口函数row_number()1,关于奇偶,我们不妨看看奇偶个数有没有共性。

    如果总共有n个数,当n=5时,n/2=2.5,我们想要的输出是第3位;当n=6时,n/2=3,我们想要的输出是第3位和第4位的平均,那么可以发现:无论奇偶,中位数必然是在n/2和n/2+1之间的数(包含两端)的平均

    由此可以产生第一种解法

    解法1:利用中位数的位次特征

    先取出每个班级成绩排序以及总数,形成表t,再限制中位数是在n/2和n/2+1之间的数(包含两端)的平均2

    select 
      class_id
      ,avg(score) as score_median
    from
       (
        select 
              class_id
              ,score
              ,row_number() over (partition by class_id order by score asc) as score_rank
              ,count(student_id) over(partition by class_id) as student_num
        from student_score
        )t
    where 
      score_rank between student_num/2 and student_num/2+1
    group by 
      class_id
    

    解法2:利用升序与降序的差值

    观察如下升序编号和降序编号可以发现,当n为奇数时,中位数对应的升序编号和降序编号的差值为0,当n为偶数时,中位数对应的升序编号和降序编号的差值为1或-13

    • 奇数情况

    在这里插入图片描述

    • 偶数情况

    在这里插入图片描述
    那么通过限定升序编号和降序编号的差值为1,-1或者0,我们可以有如下写法:

    select 
      class_id
      ,avg(score) as score_median
    from
       (
        select 
              class_id
              ,score
              ,row_number() over (partition by class_id order by score asc) as score_rank_asc
              ,row_number() over (partition by class_id order by score desc) as score_rank_desc
        from student_score
        )t
    where 
      (score_rank_asc- score_rank_desc) in (1,-1,0)
    group by 
      class_id
    

    但是解法2有一个问题,我们知道row_number处理相同值的时候会随机给一个rank,所以对于不同student_id的相同分数,可能会产生不同的rank,具体来说:
    在这里插入图片描述
    这时候奇数情况也会存在升序编号和降序编号的差值为1或者-1,就会造成错误的输出。此时可以通过限定主键的方式来使得row_number对于相同分数的不同学生,降序排和升序排的名次在逻辑上是相同的(即保证五个人升序排我是第三名,降序排我也是第三名)。

    解法2.1:

    select 
      class_id
      ,avg(score) as score_median
    from
       (
        select 
              class_id
              ,score
              ,row_number() over (partition by class_id order by score asc student_id asc) as score_rank_asc
              ,row_number() over (partition by class_id order by score desc student_id desc) as score_rank_desc
        from student_score
        )t
    where 
      (score_rank_asc- score_rank_desc) in (1,-1,0)
    group by 
      class_id
    

    延伸问题:频次+分数

    假设现在我们没有每个人的成绩了,只有每个班级的成绩及频次,即问题转换为:学生成绩表student_score,里面有三个字段:班级id:class_id,成绩:score,频次:frequency。现在让你求出每个班级学生成绩的中位数。

    这时候仍然可以考虑升序和降序的频数累积和,两个数都需要大于等于总数一半,即为中位数4

    由此有如下写法:

    select
        class_id 
        ,avg(score) as score_median
    from
    (
        select 
            class_id
            ,score
            ,sum(frequency) over(partition by class_id order by score asc) as total_asc
            ,sum(frequency) over(partition by class_id order by score desc) as total_desc
            ,sum(frequency) over(partition by class_id ) as total_num
        from 
          student_score
    )t
    where 
      total_asc>=total_num/2
    and 
      total_desc>=total_num/2
    group by 
      class_id 
    

    参考文章


    1. SQL窗口函数 ↩︎

    2. 中位数特征 ↩︎

    3. 正序倒序差值 ↩︎

    4. 延伸问题 ↩︎

    展开全文
  • 本文的目的是教会大家如何出一组数据的中位数,可能一些新手朋友们还不知道什么是中位数吧?在这里就简要为大家介绍下:中位数就是一组数据按照从小到大顺序排列最中间的那个。例如:7、8、9的中位数就是8。在公式...

    本文的目的是教会大家如何求出一组数据的中位数,可能一些新手朋友们还不知道什么是中位数吧?在这里就简要为大家介绍下:中位数就是一组数据按照从小到大顺序排列最中间的那个。例如:7、8、9的中位数就是8。在公式中使用到了if函数及median函数,if函数的作用就是判断,在本例中主要是判断产品是不是番茄而median函数的作用就是对数组进行中位数的计算。在文章末尾有对这两个函数的介绍大家不妨参考下。

    解题思路

    if函数判断B2:B7区域内的产品是不是番茄,从而返回一个数据区域{35,false,false,48,59,false}然后median函数会对该数组进行中位数的计算,结果为48.

    案例教学

    ①通过实际的案例能更好的说明情况,我简单初略的制作了下面的表格数据,各个地区的产品数量,我们要计算出番茄的中位数。

    k2zzcom-zbcqsqmy2ff.jpg

    ②单击C10单元格,输入公式: =median(if(B2:B7="番茄",C2:C7) ,大家要确保是在英文半角状态下输入的,否则会有误。

    k2zzcom-k04dvuiyonw.jpg

    ③此时按下键盘上的Ctrl+Shift+Enter三建,得到结果48,如图所示,番茄的数量是35、48、59,所以中位数是48,准确无误。

    k2zzcom-zmyxzhj04ot.jpg

    公式意义

    if(条件,条件成立时返回什么,否则返回什么):根据条件的成立与否返回指定的结果。

    median(数据区域):求出指定区域中数据的中位数。

    上一遍:用Excel表格自制单词表实现直接默写单词不依赖背单词软件

    下一遍:Excel中制作下拉菜单不止有数据有效性序列还有其他三种方法

    展开全文
  • 输入用空格、制表符、回车符或(英文半角)逗号隔开的数据序列后点击...先确定四分位数的位置:四分位数是将数列等分成四个部分的数,一个数列有三个四分位数,设下四分位数、中位数和上四分位数分别为Q1、Q2、Q3,则...
  • 首先是整数反转的求法: 给你一个 32 的有符号整数 x ,返回将 x 的数字部分反转后的结果。 如果反转后整数超过 32 的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 class Solution { public int ...
  • 数值方法样本统计量:数据来自样本,计算的度量总体参数:数据来自总体,计算的度量点估计...公式为: 中位数将所有数据按升序排序后,位于中间的数值即为中位数。 (1)当观测值是奇数时,中位数就是中间那个数值。 (...
  • excel表格公式计算后取小数点后的位数1、电脑Excel表格。2、打开Excel表格后,输入公=...EXCEL怎样去除小数在另一个空白单元格设置如下公式,计算时用新的单元格数据=ROUND(目标值,2)Excel 的 Round 函数 ...
  • 如何在Excel计算一组数字的百分位数和四分位数?... 在这种情况下,我们需要在Excel应用PERCENTILE和QUARTILE公式。Office选项卡在Office启用选项卡式编辑和浏览,并使您的工作更加轻松...Kutools for Exc...
  • 均值、中位数中位数的概念以及优缺点对比。偏态分布难点分析,以及偏度、峰度计算公式。文末附相关学习链接。
  • Leetcode 4.寻找两个正序数组的中位数 ...另外就是,对于偶数和奇数,中位数的计算方法不同。 对于长度为n的正序数组nums,这里方便公式表达,假设数组下标从1开始。如果n是偶数,那中位数为**(nums[n/2]+nums[n/2
  • 它可分用快捷键求平均值、自动求平均值和输入公式求平均值,其中用快捷键求平均值速度最快,并且三种方法都可以对行列、任意单元格、指定区域甚至整个表格求平均值。如果要求满足一定条件的平均值,需要用Average...
  • 3.9 积分Word表格自动求和,平均值等 公式运算 Word一般只能制作一些简单的表格,如果包含了一些复杂的公式运算,我们往往会选择用Excel表格来完成,其实,在Word表格我们也可以使用一些简单公式运算,...
  • 2.3.2次序统计量的分布续任给一个次序统计量 ,它的密度与总体有如下关系:证明一:考虑 落入 这一事件,它等价于容量为 的样本有 个小于 ,有一个在区间 ,有 个大于或等于 ,这一共有 种分组的方法,且对于每个...
  • 学校每次考试完,都会有一个成绩表。例如,表中第1行表示编号为1的用户选择了C++岗位,该科目考了11001分。问题:写一个sql语句查询每个岗位的中位数位置的范围,并且按岗位升序排序,结...
  • 表格求和平均值 Word表格自动求和,平均值等 公式运算,还在玩王者荣耀吗?还在吃鸡吗?不要浪费青春了,来跟我学习新技能:表格求和平均值,把时间花在正事上才能有进步,看完表格求和平均值 Word表格自动...
  • hdu 1018 Big Number(斯特灵公式,大数阶乘位数) ...根据给斯特灵公式然后带入方法一的公式就可以出答案了。这里要注意的是斯特灵公式中的pi和e的这两个常量要够精确,这样才能得到正确答案。 pi = 3.141592
  • 四分位数的两种计算方法

    千次阅读 2020-12-29 20:16:54
    在数据导论课上,我们学习了如何求解四分位数的方法,其实操作起来也不难先用 (n+1) / 4 * i 计算出四分位数的位置,再出该位置上的的值即可。如一组数据 【1,3,6,8,10】 根据公式出第一个四分位数的...
  • 四分位数怎么算

    千次阅读 2021-03-11 17:14:08
    展开全部 1、将数据从小到大排序,计为数组a(1 to n),n代表数据的长度 2、确定四分位数的位置:b= 1+(n-1) ...与中位数不同的是,四分位数位置的确定方法有几种,每种方法得到的结果会有一定差异,但差异不会很大。
  • 初学者难免困惑于计量经济学中诸多的 “条件” 与 “无条件”,比如条件概率与无条件概率,条件分布与无条件分布,条件期望与无条件期望,条件方差与无条件方差,条件中位数与无条件中位数,条件分位数与无条件分...
  • 有效位数

    2021-08-03 00:49:09
    有效数字是误差理论的基本概念之一,若某的近似值x*的误差不大于该某一数字的半个单位,该到x*最左边的第一非零数字都是该的有效数字,其个称为该的有效位数。例如,取x*₁=3.14作π的近似值,它有...
  • 度量数据中心趋势的各种方法。假设我们有某个属性X,如salary,已经对一个数据对象集记录...中心趋势度量包括均值、中位数、众数和中列数。数据集“中心”的最常用、最有效的数值度量是(算术)均值。令x1,x2,…,x...
  • ",lists_var) lists_std=np.std(lists, axis=None, dtype=None, out=None, ddof=0, keepdims=np._NoValue) print("标准差:",lists_std) print("平均数:",np.mean(lists)) print("中位数:",np.median(lists)) ...
  • 编辑本词条缺少概述、信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!简介编辑四分位数间距:...即:Q3 --Q1四分位数求法编辑第一步确定四分位数的位置四分位数是将数列等分成四个部分的...
  • 张晓峒分位数回归讲义解析.doc

    千次阅读 2021-01-17 16:51:44
    第15章 分位数回归模型15.1 总体分位数位数15.位数的估计.3 分位数回归.4 分...就是分位数回归,它最早由Koenker和Bassett(1978)提出,是估计一回归变量X与被解释变量Y的分位数之间线性关系的建模方法。正如普通最...
  • 由于实验室的项目要用matlab做仿真,开始学习matlab,虽然刚开始碰到的问题都很基础,但还是mark一下,也算是一个学习笔记吧首先看一个例子:所有的三位数,使其各位数字的立方和等于其本身,也称这样的数字为...
  • S=dD/2·sinα 平行四边形 a,b-边长 h-a边的高 α-两边夹角 S=ah =absinα 菱形 a-边长 α-夹角 D-长对角线长 d-短对角线长 S=Dd/2 =a2sinα 梯形 a和b-上、下底长 h-高 m-中位线长 S=(a+b)h/2 =mh...
  • Excel的数据需要用到公式把小数保留2,用函数具体该如何把小数保留两呢?接下来是学习啦小编为大家带来的excel用公式保留2小数的方法,供大家参考。excel用公式保留2小数的方法(一)步骤1:选中C2单元格,...
  • 一、问题提出出1000内的所有水仙花数,水仙花数值的是一个三位数,其各位数字立方和等于其本身。例如371=3^3+7^3+1^3 这个问题用C语言比较容易实现,但是用VI还没有弄明白,不用公式节点的话该怎么做呢?问题很...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 155,144
精华内容 62,057
关键字:

中位数的求法公式