android - 请教一个java概率算法

查看:233
本文介绍了android - 请教一个java概率算法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

题目:
有A、B、C、D、E五家美食餐馆需要推荐给用户,初始被推荐的概率依次为40%、30%、10%、15%、5%。
每次根据推荐概率随机推荐一家,推荐给用户的餐馆用户可以给其好评,也可以不给。

需求:通过多次推荐进行动态调整每家美食餐馆被推荐的概率,提高用户给好评次数多的餐馆被推荐的概率。

补充说明:
1,初始给出的概率是后台通过大数据得出的,但是实际上每个用户喜欢的不一样,所以每个用户客户端还需要通过长期对用户的操作(给好评)进行统计分析,调整概率。最终的目的是为了尽可能的推荐用户喜欢的餐馆;
2,在对用户行为统计的时候会受到当前概率的影响,比如推荐概率为40%的A餐馆出现的机会远大于概率为5%的E餐馆,所以简单的统计好评是不行的,需要将这种因素给排除掉。

解决方案

这是个开放性的问题。动态调整标准应尽量避免历史的影响,及时反映最新的客户认可度。不妨定义客户对餐馆的当前认可度为两次动态调整期间,该餐馆在推荐后获得好评的比率。动态调整推荐概率正比于当前认可度即可。

例如,本次动态调整时,5家餐馆距离上次调整的好评情况为:

  • A: 10/40(推荐了40次,获得好评10次)= 0.25

  • B: 20/30 = 0.67

  • C: 3/10 = 0.3

  • D: 10/15 = 0.67

  • E: 2/5 = 0.4

则调整后的推荐概率更新为:

  • A: 0.25 / (0.25 + 0.67 + 0.3 + 0.67 + 0.4) = 0.25 / 2.29 = 11%

  • B: 0.67 / 2.29 = 29%

  • C: 0.3 / 2.29 = 13%

  • D: 0.67 / 2.29 = 29%

  • E: 0.4 / 2.29 = 18%

这篇关于android - 请教一个java概率算法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆