标题相当模糊,所以我在那里道歉。
我想做的是:
每个数据集我有三个数字。X、Y 和 Z。它们总是正数,Z 是 2 的幂。我需要在 X 和 Y、Z 次之间进行插值。每次插值从 X 到 Y 的距离是当前迭代除以 Z 的百分比。然后使用round to nearest对插值的返回进行四舍五入。然后我需要计算每个数据集存在多少每个结果。
像这样:n(i) = Round(x + (y - x) * (i / (Z-1)))
示例(为简单起见仅保留 3 位小数):
X, Y, Z
3, 5, 8
不四舍五入的值:
3.000 3.286 3.571 3.857 4.143 4.429 4.714 5.000
四舍五入的值:
3 3 4 4 4 4 5 5
最终目标:
2 3's, 4 4's, 2 5's.
这个,我可以做的很好。然而,我想要做的是找出有 2 个 3、4 个 4 和 2 个 5(按此顺序),而不必实际插值 8 次,如示例所示。实际上,数字更像是 291、3472、8192;我需要相当快地处理数千个这样的问题。
如何在不迭代每个数据集 Z 次的情况下做到这一点?
编辑:Y 并不总是大于 X。在这个例子中,如果它是 5、3、8.. 我想知道有 2 个 5、4 个 4 和 2 个 3 的顺序。