模拟amazon.com畅销书籍

时间:2013-11-28 13:08:31

标签: algorithm

我刚刚浏览了amazon.com,引起我注意的一件有趣的事情是他们如何计算最畅销书籍

我正在考虑编写一个示例程序来计算它。我当时想的是,假设我计算本月的畅销书,而不仅仅计算单个书籍的销售数量并显示前10名。是可以还是我错过了什么?

修改

还有一件有趣的事情可能发生:假设有一本书id1在第一天卖了10件,但之后它还没卖,但有id2的书被卖了1或2件经常。那么它将如何影响畅销书计算。感谢。

1 个答案:

答案 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(天)或不同的功能。尝试并看看对你有意义的事情。