0

我们UIPickerView的应用程序中有一个当前按代码设置的顺序显示其选项列表(大约 7 个)。

我被要求为这些选项添加一些“智能”排序,以便最常用的选项能够排在首位。

我最初的想法是给每个选项一个“分数”(甚至只是一个整数),并在用户每次选择该选项时添加它,但这在某些情况下不起作用。

例如。假设用户正在寻找任务中最高的对象。他们会进行大量搜索并按高度对它们进行排序。这会将“height.score”推高到一个很高的数字,而其他一切都保持在 1 或 0。

现在他们开始根据体重寻找东西。现在,每次他们进入搜索时,“身高”的排序选项将位于顶部,直到他们对体重进行的搜索比以前对身高进行的搜索更多。

有没有办法拥有同样的功能,但让它更智能?

我正在考虑类似于 Elo 评级系统的东西,但 AFAIK 只有在有两个“玩家”时才有效。是否有另一个允许多个“玩家”的评级系统?

这实际上可能更适合程序员交流。让我知道,我会把它放在那里。

4

1 回答 1

0

您可以在“最近使用的”组件中对这些因素进行评分。比如:当一个选项被选中时,添加 3 个点并从其他选项中删除一个点(甚至是 0.5 的倍数)。也有一个最大的点上限。在您的示例中,这最初会将“身高”提升到列表的顶部,但是一些“体重”选择会将其提升到顶部,同时将“身高”长时间排在第二位。有多种方法可以做到这一点,您可能想查看一些使用不同计算的模拟,看看哪些结果对您来说感觉最好。

于 2015-05-28T05:36:44.377 回答