如何通过指定不同的百分比来增加值

时间:2011-09-20 11:08:59

标签: c#

这个问题可能与数学有关,而不是与编程有关。我将通过一个例子来解释这个问题。 假设我有一个包含100个项目的数组,我想为这些项目分配值,使得前80%项目中的值总和为20%,最后20%中的值总和为20%。这些项目是80%。也就是说,前80%的项目获得20%,其余项目获得80%。知道项目的数量是在运行时确定的。

这可能吗?

感谢。

2 个答案:

答案 0 :(得分:4)

让我们说总数为100. Asign 0.25到前80%(80项)。因此前80项的总和将是80 * 0.25 = 20(占总数的20%)。现在分配4来休息20%(20项)。因此,最后20项的总和将是20 * 4 = 80(占总数的80%)这是您在代码中所需要的。

double[] items = new double[100]; 
for (int i = 0; i < 80; i++) 
    items[i] = 0.25; 
for (int i = 80; i < 100; i++) 
    items[i] = 4; 

答案 1 :(得分:2)

当然。

总计为1,而80%为0.8。如果20个项目总计为0.8,则每个项目得到0.8 / 20 = 0.04。 其余80个项目总共0.2个,每个项目得到0.2 / 80 = 0.01 / 4 = 0.0025。

double[] items = new double[100];
for (int i = 0; i < 20; i++)
    items[i] = 0.04;
for (int i = 20; i < 100; i++)
    items[i] = 0.0025;

同样适用于整数等。