求助算法是否有错误 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
letianqiu

求助算法是否有错误

  •  
  •   letianqiu 2018 年 3 月 10 日 2697 次点击
    这是一个创建于 2967 天前的主题,其中的信息可能已经有所发展或是发生改变。

    algorithm 目前的想法是开一个 N 的 array 作为桶,遍历这 N 个数,每次拿这个数乘以 N 然后再取整,作为下标 idx。这个数就放入下标为 idx 的桶中。最后合并桶里的元素。

    7 条回复    2018-03-10 21:21:34 +08:00
    xml123
        1
    xml123  
       2018 年 3 月 10 日   1
    正确的。
    首先在给定的序列中插入新的数不会使求和的式子变小,因为 |a-b|<=|a-c|+|c-b| 。
    然后把你最后生成的数列按桶分成若干组(设有 m 个桶,m<=n ),每一组最后插入该组第一个数,下面证明修改后的序列满足不等式。
    把求和分成两部分,y_i 和 y_i-1 在同一组里的,不在同一组里的。
    同一组里的元素为分布在长度为 1/n 区间内的实数,任意两数之差绝对值小于 1/n,同一组 k 个数相邻元素差的绝对值之和小于(k-1)/n,由于一共有 n+m 个数,m 组,所以这些和小于 1。
    不同组元素的差的绝对值之和可以看出等于第一个数与最后一个数差的绝对值,该值小于 1。
    所以两部分之和小于 2。
    (稍微修改证明过程可以证明和小于 2-2/n,应该是你给出的算法的上界了。)
    ytterbium
        2
    ytterbium  
       2018 年 3 月 10 日 via Android   1
    简单点说就是,每个桶 i 里差总和小于等于(k_i-1)/n,所有桶内和小于等于 sum{(k_i-1)/n}=(n-h)/n<1,h 是非空桶的个数。桶之间的差绝对值之和是在有序序列上算的,小于等于 1。所以两部分总和小于 2。
    letianqiu
        3
    letianqiu  
    OP
       2018 年 3 月 10 日
    @xml123
    @ytterbium 感谢你们两位啊,我只是凭直觉想出的这个算法,但是苦于无法证明。
    letianqiu
        4
    letianqiu  
    OP
       2018 年 3 月 10 日
    @xml123
    @ytterbium 如果要求和的上界是 1+eplison,算法该怎么调整? 感觉每个桶内部也要保持有序,退化成桶排序的话无法保证 O(n)。
    ytterbium
        5
    ytterbium  
       2018 年 3 月 10 日 via Android
    桶数增大,由 n 换成 m,m>n,m 和 eplison 什么关系没想好,不过复杂度就是 O(m)了
    ytterbium
        6
    ytterbium  
       2018 年 3 月 10 日 via Android
    题目说的线性复杂度,O(m)也是线性,还算符合要求吧
    ytterbium
        7
    ytterbium  
       2018 年 3 月 10 日 via Android
    如果 m 可以写成 eplison 的表达式,就是关于 eplison 的线性算法,O(eplison)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     904 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 19:36 PVG 03:36 LAX 12:36 JFK 15:36
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86