我们的应用中有一个UIPickerView
,目前按照代码设置的顺序显示其选项列表(大约7个)。
我被要求添加这些选项的“智能”排序,以便最常用的工作方式达到顶峰。
我最初的想法是给每个选项一个“得分”(甚至只是一个整数)并在每次用户选择该选项时添加它,但这在某些情况下不起作用。
例如。假设用户正在寻找作业的最高对象。他们会进行大量搜索并按高度排序。这将把“height.score”推高到一个很高的数字,而其他一切都保持在1或0。
现在他们开始根据体重寻找东西了。现在,每当他们进入搜索时,“高度”的排序选项将位于顶部,直到他们对重量进行更多搜索,而不是之前对高度的搜索。
有没有办法让这个功能相同但更聪明?
我正在考虑与Elo评级系统类似的东西,但AFAIK只有在有两个“玩家”时才有效。是否有其他评级系统允许多个“玩家”?
这实际上可能更适合程序员交流。让我知道,我会把它放在那里。
答案 0 :(得分:0)
您可以在“最近使用过的”组件中对这些因素进行评分。类似于:当选择一个选项时,向其中添加3个点并从每个其他选项中删除一个点(甚至是0.5)。点数也有最大上限。在你的例子中,这最初会将“Height”提升到列表顶部,但是一些“Weight”选项会将其提升到顶部,而将“Height”留在第二位很长一段时间。有很多方法可以做到这一点,您可能希望使用不同的计算来查看一些模拟,并查看最适合您的排序结果。