(这不是作业,也不是工作问题。这只是我个人的兴趣/职业,完全是虚构的。但我对好的算法或数据结构感兴趣。)
假设,我会经营一个约会网站。而我的特点是单曲与电影品味相匹配。(为什么不?)
在这种情况下,我需要一种方法来存储每个用户的电影评分。(到目前为止没问题。)我需要一个数据结构来找到最合适的用户。两种口味模式之间的距离将是两个用户做出的所有评分之间的平均距离。
例子
movies A B C D E F G H I J K L M ...
user Xm 9 5 1 1 5
user Ym 4 6 1 8
user Zf 9 6 4 7
距离(X,Z) = avg( abs(9-9) + abs(1-4) ) = 1.5
距离(Y,Z) = avg( abs(4-6) + abs(6-4) + abs(8-7) ) = 1.666
因此,X 先生比 Y 先生更适合 Z 女士。
我喜欢那个...
- ...不需要对数据库进行很多操作
- ...不需要处理大量数据
- ... 快跑
- ...提供最佳匹配
- 好的,也许我也会考虑好的近似值。
请记住,这也应该适用于数以千计的可能电影、仅对大约 20-50 部电影评分的用户以及数以千计的用户。
(因为这是一个心理难题,而不是真正的问题,所以工作场所并没有真正的帮助。)
你的搜索算法或数据结构是什么?