【发布时间】:2014-09-15 09:18:42
【问题描述】:
我有一个数字列表,例如 1 到 60,但不一定以 1 为增量。例如,1-40 以 1 为增量,40-60 以 2 为增量。
我有另一组已定义的数字(桶)——例如 2、3、5、10、30、50
我需要生成一个二维数组,其中包含上面每个数字(1 到 60)适合哪个桶的百分比。
为了简单起见:假设我们有数字 1 到 10,桶分别是 2、3、5、10
我希望我的二维数组看起来像这样:
我可以用一堆条件句来做到这一点,但我认为有一个我没有想到的解决方案,如果有人能解释一下,那就太好了! 我需要在 JavaScript 中执行此操作,但任何语言都可以帮助我尝试和理解任何比许多 if 决定每个数字适合的位置然后为每个单元格执行 (6-5/10-5)=0.2 更优化的解决方案。
我试图避免对桶 2、3、5、10 进行硬编码,以便任何一组桶或数字都可以完成这项工作。
编辑: 首先,对于不完整的描述,我很抱歉 - 当时我正在使用手机,无法通过计算机在 stackoverflow 上发帖。
1-10 和 2,3,5,10 都代表年份。实际上,我正在尝试每年从 1 到 10。
- 第 1 年 100% 进入第 2 年 - 我想没有具体的 此单元格的公式
- 第 2 年 100% 进入存储桶 2 - 也没有具体公式
- 第 3 年 100% 进入 Bucket 3 - 3==3
- 第 4 年在存储桶 3 之间分配一半,在存储桶 5 之间分配一半。计算公式为:(第 4 年 - 第 3 年)/(第 5 年 - 第 3 年)= 0.5
- 第 5 年 100% 进入存储桶 5。
- 第 6 年,80% 进入存储桶 5,20% 进入存储桶 10。此公式为:1-(6-5)/(10-5)=0.8 及其相邻单元格 (6-5 )/(10-5)
- ...等等...
我希望这会让它更清楚。
【问题讨论】:
-
您能解释一下输入/输出之间的关系吗?为什么 [3,4] 和 [5,4] 都是
0.5? -
是的,当然 - (4-3)/(5-3),这是 [5,4] 的,它的邻居只是 1-that。
-
你的意思是 (5+4)=(10-3*(1/3)) ?
-
那又是如何抽象到 [0,0], [3,9], [10,9] 的位置的呢?需要对“x”数字和“y”数字采取哪些步骤才能在 [x,y] 坐标处找到结果?您需要清楚地解释您要解决的问题,因为事实上,我们(或至少 我)不知道如何帮助您。
-
@kkudi:你最想要什么? 1)让人们放松他们的时间 2)提出一个谜或 3)得到答案?如果是 1) 或 2),则什么也不做。如果你想要一个答案,拿一个键盘把问题说清楚。
标签: javascript arrays weighting