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

前端之家收集整理的这篇文章主要介绍了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视图.这就是你需要的.

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

原文链接:https://www.f2er.com/csharp/244251.html

猜你在找的C#相关文章