zoukankan      html  css  js  c++  java
  • 今日击败算法

    昨天产品上线第一天发现今日击败模块第一天所有人会出现击败0%

    原始方案:
    今日击败=1-(今日已打卡人数/(今日已打卡人数和昨日打卡人数之间的最大值)

    例子:

    第一天报名10人
    无法打卡
    第二天又报名10人 一共20人
    第一人:1-(1/1)=0% 第二人: 1-(2/2)=0% 第三人: 1-(3/3)=0% 三人打卡、17人出局
    第三天没人报名 一共20人
    第一人:1-(1/17)=94% 应该是100%

    于是自己想出方案一:

    获取报名人数+上一天留下人数

    第一天报名10人

      无法打卡

    第二天又报名10人  一共20人

      第一人:1-1/(10+0)=90% 第二人:1-2/(10+0)=80% 第三人:1-3/(10+0)=70%

      共计:3人打卡  17人出局

    第三天报名50人   一共53人

      第一人:1-1/(50+3)=98.1%

     这个方案的问题出在这样一来第一人无法为100%永远都不可能

    于是出现方案二:

    通过切割时间来划分一小时3600秒 打卡持续时间3小时一共10800秒

    把用户打卡的时间换算成秒=A

    1-A/10800就可以求出今日击败

  • 相关阅读:
    将SVD应用于推荐系统
    matrix.A
    机架感知配置
    PCA主成分分析进行数据降维
    Rabbitmq的高级特性
    Topics(主题模式)
    Routing(exchange--direct)
    fanout(Publish/Subscribe)发布/订阅
    Work Queues(工作队列)
    simple queue(简单队列)
  • 原文地址:https://www.cnblogs.com/moster/p/8397751.html
Copyright © 2011-2022 走看看