c# – 在一个月内均匀投放广告的平滑算法

假设我有10个广告在网站上显示.

如果广告#1在某个月内显示为100K,那么您将如何在一整天内均匀/平稳地展示这些广告?

我必须考虑交通高峰,所以我不能简单地将30天除以每天100K或3K的印象.

这类问题域是否有公式?

解决方法

好吧,首先,您无法知道您的网站将获得多少次访问,因此您无法确保每个广告都会准确显示X次.例如,如果广告#1要显示100K次,而广告#2要显示200K次,但您只获得150K次访问,那么您可能会满足任何需求.另一方面,如果你获得600K访问量,那么每次访问都应该没有广告.但你无法事先预测到这一点.

因此,我建议像tskuzzy一样 – 随机选择广告,但调整他们的概率,以便他们接近适量的观点.当然,跟踪每个广告的展示次数,并在达到限制后将其从轮播中删除.

我们来看一个例子.假设您有两个广告.广告#1仍需要再展示7天,并且需要获得70多个观看次数.广告#2需要再显示10天,并且需要20多个观看次数.因此,广告#1应该每天平均显示10K次,广告#2 – 每天2K次.因此,广告#1出现的概率应为10 /(10 2)= 5/6,广告#2的概率应为2 /(10 2)= 1/6.因此,对于每12K次观看,您将平均获得广告#1的10K视图和广告#2的2K视图.这就是你需要的.

在每天开始时重新计算这些概率,并且只在同一时间添加新广告.如果您在当天中间添加新广告,则会使事情变得复杂.但是,如果您以秒为单位计算时间,而不是以天为单位,它也可以正常工作,因此您也可以这样做以获得更高的准确性.如果你经常重新计算所有内容,请密切注意性能.

相关文章

原文地址:http://msdn.microsoft.com/en-us/magazine/cc163...
前言 随着近些年微服务的流行,有越来越多的开发者和团队所采...
最近因为比较忙,好久没有写博客了,这篇主要给大家分享一下...
在多核CPU在今天和不久的将来,计算机将拥有更多的内核,Mic...
c语言输入成绩怎么判断等级
字符型数据在内存中的存储形式是什么