gpt4 book ai didi

.net - 更改结果集的排序顺序 'fairly'

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:49:55 24 4
gpt4 key购买 nike

假设我有一大组数据,其中每个数据都有几个可搜索的列(例如颜色、高度、宽度等),这样用户就可以发出诸如“所有红色项目”或“所有具有宽度的绿色项目”之类的搜索50 岁以下。

是否有一种既定的算法可以让我根据结果集中的给定项目已针对相同搜索条件返回的次数来改变结果集的排序顺序?我正在寻找某种“公平”算法,以便我可以平均分配结果集中任何给定项目在该集中早期查看的频率。换句话说,结果集中的每一项都应该有相等的概率作为结果集中的第一项出现。

此外,对于给定的用户/ session ,必须维护结果集的排序顺序,以便在结果集内进行分页、附加排序或进一步过滤首先遵守算法的“公平”排序顺序,然后应用任何额外的搜索过滤器。

我将在具有 C# 后端和 SQL 2008 数据库的 MVC.NET 网站中实现它。当然欢迎针对特定平台的解决方案,但总的来说,我想知道是否有既定的算法。我还发现我描述问题的词汇量有限,因此任何关于我什至可以在网上搜索的内容的指示都会有所帮助。

从某种意义上说,我希望每次查询时都对项目进行随机排序,只是我想在该用户 session 的生命周期内保留这种特定的“随机性”

最佳答案

In some sense, I am hoping to sort the items randomly each time they are queried only I would like to preserve that particular 'randomness' for the lifetime of that user's session

听起来您可能会在登录(或 session 创建)时生成一个随机种子,将其存储在用户的 session 中,然后在每次打乱结果时使用该种子创建一个新的 Random。这可能是最简单的实现方式。

另一方面,如果查询结果发生变化,它不会保留顺序。例如,如果值 ABCDE 最终为“ABDCE”,那么如果查询更改为排除 A,则相同的种子很容易给出“BCED”作为打乱后的版本。

关于.net - 更改结果集的排序顺序 'fairly',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9727480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com