C# 根据重量将百分比分配给项目

C# 根据重量将百分比分配给项目,c#,algorithm,distribution,C#,Algorithm,Distribution,我搜索了一下,却找不到任何与我的问题相关的东西(或者无法恰当地表达出来),所以希望如此 出于UI展示的目的,我有100%的时间分布在不同数量的项目上——也就是说,我没有选择它们。我希望能够指定权重,例如,项目a的重要性是项目B的两倍。如果只有这两个项目,我的净收入百分比将分别为67%和33%。如果我添加了一个与项目B同等重要的项目C,我将得到50%、25%、25% 问题是语言不可知,但实现语言是C#,如果这有什么区别的话 是否有适合此目的的算法?我意识到a可以用于选择,但因为我只对报告相关项目的

我搜索了一下,却找不到任何与我的问题相关的东西(或者无法恰当地表达出来),所以希望如此

出于UI展示的目的,我有100%的时间分布在不同数量的项目上——也就是说,我没有选择它们。我希望能够指定权重,例如,
项目a
的重要性是
项目B
的两倍。如果只有这两个项目,我的净收入百分比将分别为67%和33%。如果我添加了一个与
项目B
同等重要的
项目C
,我将得到50%、25%、25%

问题是语言不可知,但实现语言是C#,如果这有什么区别的话


是否有适合此目的的算法?我意识到a可以用于选择,但因为我只对报告相关项目的百分比感兴趣,以供用户理解,所以我不这么做。我对输入一组权重和输出百分比感兴趣。我不熟悉允许这样做的东西。

您可以使用以下公式计算百分比:
百分比=重要项目/重要项目总数

您可以使用以下公式计算百分比: 百分比=重要项目/重要项目总数

您需要为您的项目附加一个“重要性”因子,其值为1、2、4,这样您可以将所有“重要性”相加,并将其除以100,以获得每个重要性的百分比。然后乘以每个项目的百分比,得到每个项目的比例

在第一个例子中,1和2的重要性。加起来,他们得到3。100%/3为33.3%。项目A的重要性为2,因此其百分比为2*33.3=66.7%,而项目B的重要性为1,因此其百分比为1*33.3=33.3%

在第二个示例中,1的重要性为2,2的重要性为1,总共为4。100% / 4 = 25%. 为项目A、B和C提供50%、25%和25%的值。

您需要在项目上附加一个“重要性”因子,其值为1、2、4,这样您可以将所有“重要性”相加,并将其除以100,以获得每个重要性的百分比。然后乘以每个项目的百分比,得到每个项目的比例

在第一个例子中,1和2的重要性。加起来,他们得到3。100%/3为33.3%。项目A的重要性为2,因此其百分比为2*33.3=66.7%,而项目B的重要性为1,因此其百分比为1*33.3=33.3%


在第二个示例中,1的重要性为2,2的重要性为1,总共为4。100% / 4 = 25%. 为项目A、B和C提供50%、25%和25%的值。

保留所有项目的计数器(在类似哈希表的数据结构中)和另一个变量
项目总数
。项目
X
的百分比分布将是它的
计数器[X]*100/项目总数
。保留一个所有项目的计数器(在类似哈希表的数据结构中)和另一个变量
项目总数
。项目
X
的百分比分布将是其
计数器[X]*100/项目总数。