我正在开发横幅广告系统。每个横幅都将存储在数据库中。每个横幅都会有一个 wight(int number)。我怎样才能有效地将其转换为百分比?
例如:
banner_1 70 banner_2 90 横幅_3 150
我想让横幅 1 显示 22% 第二个 29% 第三个 48%
最佳答案
如果权重是w[1]
, w[2]
, ..., w[n]
,那么百分比p[i]
第 i 个横幅广告是:
p[i] = w[i] / sum(w)
即给定广告的权重除以权重总和。您的数据库系统应该能够相当容易地进行计算。
如果您的广告相对较少,并且广告获得的浏览量比更新多得多,则可能值得为每个广告缓存此 p[i]
,然后在您添加、删除时重新计算它或修改广告的权重。
关于algorithm - 横幅广告算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4786607/