V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
FanError
V2EX  ›  问与答

请问类似 QQ 断线重连的时间间隔,是不是有一个什么算法之类能算出来的。

  •  
  •   FanError · 2018-02-05 16:21:58 +08:00 · 1941 次点击
    这是一个创建于 2481 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如刚开始时,5 秒重连,连不上变为 15 秒重连,然后 45 秒重连,然后 2 分钟重连,然后 5 分钟重连,然后 30 分钟重连,然后 1 小时重连。。

    或者问下有没有这样的算法(感觉我要的效果和 QQ 重连有点像),比如做一个抢单程序,当传入一个总数,当传入的总数越小时,返回的数越小,当传入的总数越大,返回的数越大。
    比如商家放出一个商品,数量有 10 个,我抢 2 ( 20%)个机率很高,如果放出一个商品,数量有 100 个,我抢 40(40%)个机率很高。。为了尽可能多抢,我不能永远设为 20%。。

    感觉应该有一个什么算法能算出来的。。数学不好,大佬指点。
    10 条回复    2018-02-06 16:34:30 +08:00
    TimePPT
        1
    TimePPT  
       2018-02-05 16:56:55 +08:00
    完全看不懂你说啥意思。

    QQ 重连那个用一个带状态判断的 loop 就能搞定

    只要给个初始化 gap_time = 5 秒 如果连接失败
    间隔时间 = 间隔时间 * 系数 k 继续进入下一个 loop 就完了。
    一旦链接成功 reset 间隔时间到 5s 不就好了
    CEBBCAT
        2
    CEBBCAT  
       2018-02-05 17:01:17 +08:00
    我知道是智能调整工作,但还是没看太明白,后半部分太意识流了,再描述描述?
    Monstercat
        3
    Monstercat  
       2018-02-05 17:03:04 +08:00
    你可知道什么叫等比数列
    CEBBCAT
        4
    CEBBCAT  
       2018-02-05 17:03:05 +08:00
    > 或者问下有没有这样的算法(感觉我要的效果和 QQ 重连有点像),比如做一个抢单程序,当传入一个总数,当传入的总数越小时,返回的数越小,当传入的总数越大,返回的数越大。

    这俩数是啥意思?

    > 比如商家放出一个商品,数量有 10 个,我抢 2 ( 20%)个机率很高,如果放出一个商品,数量有 100 个,我抢 40(40%)个机率很高。。为了尽可能多抢,我不能永远设为 20%。。

    什么不能设置为 20 ?
    FanError
        5
    FanError  
    OP
       2018-02-05 17:15:05 +08:00
    @TimePPT
    @CEBBCAT

    我再描述描述,拿虚拟货币市场卖单举例,实际上也是想把公式套用到这个里面用的。

    假如当前卖单数量是 10 个,有很多机器人都在下单,我在买入前要简单的判断下要买的数量是不是成功性比较高的,这时我策略设定买 2 个( 20%)基本是没问题的(还有 8 个让给其它机器人在抢),程序可以继续执行下单。

    然后继续假如当前卖单数量是 100 个,这个时候我设定抢 40 个( 40%),基本也是没问题的,可以继续执行下单。

    其实就是想找一个算法(感觉有这种算法),不想人肉编码判断这个数量是否相对安全。
    假如是人肉编码就是
    if (总数 < 10) {
    // 要抢的数量不大于 20%
    } else if (总数 >10 && 总数 < 100) {
    // 要抢的数量不能大于 40%
    } else if (总数 > 100 && 总数 < 1000) {
    // 要抢的数量不能大于 60%
    } else if (更多) {

    }
    FanError
        6
    FanError  
    OP
       2018-02-05 17:17:14 +08:00
    @CEBBCAT 回 4 楼同学,5 楼详细描述了。。

    这个时候设为 20%没问题,但下的单量就小了。每次只能抢里面的 20%
    CEBBCAT
        7
    CEBBCAT  
       2018-02-05 17:21:27 +08:00
    你要是做数字货币,那可以查查之前的数据然后绘个回归曲线出来,拿这个曲线来办事儿(其实我还是没听太懂为啥资源多了自己的可能性就高了,不是还有其他竞争者么,大家都很强的吧?)

    我觉得这是博弈问题
    TimePPT
        9
    TimePPT  
       2018-02-05 17:25:25 +08:00
    @FanError 你这说的跟 QQ 重连那个完全没关系

    你只是不想硬编码条件来约束抢单量。

    最简单的,累计数据,做一个数据拟合去建立模型,利用模型去确定总量和理想最大抢单量关系。
    xinQing
        10
    xinQing  
       2018-02-06 16:34:30 +08:00
    斐波拉契数列?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5349 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 06:50 · PVG 14:50 · LAX 22:50 · JFK 01:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.