我刚刚浏览了一下amazon.com,一个有趣的事情吸引了我的眼球,那就是他们如何计算图书的最佳销量。
我想写一个样本程序来计算这个。我在想,假设我计算的是本月的畅销书,而不仅仅是把每本书的销量加起来,列出前十名。没事吧,还是我丢了什么东西?
编辑
另一件有趣的事情可能会发生:假设有一本id1
的书在第一天就卖了10本,但在那之后它还没有卖出去,但是id2
的书经常会卖到1到2本。所以它将如何影响畅销书的计算。谢谢。
最佳答案
听起来不错取决于你到底想怎么定义它。
“畅销书”指的是销售量。
另一种方法是,如果你不想把它固定在一个月内,那就是使用一些分布函数(比如平方衰减,t^2)并添加由分布函数加权的计数。
这样,即使你没有一个固定的时间窗口,你仍然可以看到新来者和旧书。您的函数应该如下所示:
for a_book in books:
score = 0
for a_sale in sales[a_book]:
score += 1 / (days(now() - a_sale.time()) ** 2) # pow 2
我想你明白了。您可以尝试不同的功能,如exp(days)或不同的power做个实验,看看什么对你有意义。