我刚刚浏览了amazon.com,引起我注意的一件有趣的事情是他们如何计算最畅销书籍。
我正在考虑编写一个示例程序来计算它。我当时想的是,假设我计算本月的畅销书,而不仅仅计算单个书籍的销售数量并显示前10名。是可以还是我错过了什么?
修改
还有一件有趣的事情可能发生:假设有一本书id1
在第一天卖了10件,但之后它还没卖,但有id2
的书被卖了1或2件经常。那么它将如何影响畅销书计算。感谢。
答案 0 :(得分:1)
听起来很对。取决于你想要如何定义它。
“畅销商品”是指销售的单位数量。
另一种方法,如果你不想把它修复到一个月就是有一些分布函数(比如平方衰减,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(天)或不同的功能。尝试并看看对你有意义的事情。