我甚至不太确定我应该使用哪些条款用于我想要的东西,所以对我甚至要求的任何建议都会非常受欢迎。
基本上,我的网站列出了用户生成的住宿。每个都有租金价格,用户可以在我们新的分面搜索框中查询。
用户按城市搜索,并且我希望在每个城市内提供不同的租借分组。也就是说,在City#1中,如果我们有200美元到1000美元的列表,我想提供以下复选框:
但是,如果City#2的值范围为$ 500 - $ 1500,我希望上面的范围相应地改变。所以,如果我说每个城市需要5个或6个范围选项,我想我有两个选择:
取最小值和最大值,然后将差异分开。我不喜欢这个想法,因为一个租金为10,000美元的房源会使整个规模失效。
使用平均值,中位数等智能计算范围。
2号是我需要帮助的。我是一名获得逻辑的网络开发人员,但在学校的数学和统计数据方面从未如此强大。任何人都可以指向我指导,这将帮助我解决这个问题吗?
答案 0 :(得分:2)
如果您正在寻找4组,则需要3个分割点。取整个集合的中位数来得到中间值,然后取得上面和下面的中位数来得到你的另外两个。
答案 1 :(得分:0)
不是试图根据数据集动态计算出比例,为什么不使用静态比例(或确定比例的公式),然后确定是否有数据支持显示搜索选项。
例如,如果您的比例为[(0-300), (301, 600), (601-700), ...]
而您的数据集包含[$ 250,$ 500,$ 550,$ 1000],那么您需要显示[(0-300), (301-600), (1001-1300)]
。
你可以用LINQ解决这个问题。
答案 2 :(得分:0)
按数量拆分数据。
像这样的东西(伪C代码): 让“set”为数据,“n”为条目数,“s”为分割数。
int increment = ceil(n/s);
int start = 0;
int end = increment;
OrderSet(set); // So set[0] is min and set[n-1] is max
for (int i = 0; i < s; i++)
{
while (set[end] == set[start] && end < n - 1)
end++;
AddGroup(start, end);
if (end == n - 1)
break;
start = end;
end = start + increment;
if (end >= n)
end = n - 1;
}