use*_*327 5 ruby arrays algorithm math ruby-on-rails
我需要用任何语言编写算法,根据3个因素对数组进行排序.我以度假村为例(如Hipmunk).假设我想去度假.我想要最便宜的地方,最好的评论和最吸引人的地方.但是,显然我无法在所有3中找到#1.
示例(假设有20个重要景点):
度假村 - 答:150美元/晚... 98/100在有利的评论... 20个景点中的18个
度假村B:99美元/晚... 85/100在有利的评论... 20个景点中的12个
度假村C:120美元/晚... 91/100在好评... 20个景点中的16个
度假村B看起来价格最具吸引力,但在其他两个类别中排名第三.其中,我可以选择度假村C,每晚只需21美元,并获得更多的景点和更好的评论.价格对我来说仍然很重要,但是A度假村拥有出色的评价和众多景点:价值51美元的奢侈品值多少钱吗?
我希望能够填充一个列表,该列表将从"从最好到最差"点亮(我引用bc对消费者来说是主观的).我将如何最大化每个度假村的价值?
如果有点混乱,请访问www.hipmunk.com.他们有一种飞机排序,他们称之为痛苦(和我的问题类似的酒店类型),他们将其作为自己使用.我以度假村为例让我的问题更有意义.如何将数学运用于这样的问题?
drz*_*aus 10
我正打算提出关于多因素加权排序的相同问题,因为我的研究只提出了双因素排序的答案(例如解释公式).
尽管我们都在询问3个因素,但我会列出我发现的可能性,以防它们有用.
可能性:
注意:S是"排序分数",这是你要排序的(asc或desc).
S = (w1 * F1) + (w2 * F2) + (w3 * F3)wxFxFFx_n = Fx / FmaxS = 1000 * F1 + 100 * F2 ...S = (F2 / F2_max * F1) + ((1 - (F2 / F2_max)) * F1_avg)F1F2S = (F2 / (F2+F2_lim)) * F1 + (F2_lim / (F2+F2_lim)) × F1_avgFxF2_lim选项#3和#4看起来很有前途,因为你不必像在#1和#2中那样选择任意加权方案,但问题是你如何做到这两个因素呢?
在你的情况下,在#1中分配权重可能没问题.您需要根据用户认为更重要的内容微调算法 - 您可以将权重公开为过滤器(如1-10下拉菜单),以便用户可以即时调整其搜索.或者如果你想变得聪明,你可以在搜索之前对用户进行轮询("哪个对你更重要?")然后根据响应分配权重集,并且在跟踪足够的民意调查后你可以自动提出加权方案基于大多数回复.wx
希望能让你走上正轨.