Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 影响整数集变化率的概念帮助_Arrays_Algorithm - Fatal编程技术网

Arrays 影响整数集变化率的概念帮助

Arrays 影响整数集变化率的概念帮助,arrays,algorithm,Arrays,Algorithm,我正试图找出一种算法,为目前为止运气不佳的最终用户提供建议。用户将拥有一个项目列表,其中最多包含100个项目。每个项目都分配了1到100之间的点数,但所有项目的总和始终必须等于100分。每个项目还具有与其关联的优先级(低、中、高)。将新项目添加到列表中时,必须重新分配所有现有项目点以及新项目的点,总计为100。向用户提供三个重新分配建议,每个可能的优先级一个 场景-假设列表中有两个项目,都是中等优先级,每个项目50分。在添加第三项之前,将提出3条建议。那么比如说, 低建议-40/40+10 Me

我正试图找出一种算法,为目前为止运气不佳的最终用户提供建议。用户将拥有一个项目列表,其中最多包含100个项目。每个项目都分配了1到100之间的点数,但所有项目的总和始终必须等于100分。每个项目还具有与其关联的优先级(低、中、高)。将新项目添加到列表中时,必须重新分配所有现有项目点以及新项目的点,总计为100。向用户提供三个重新分配建议,每个可能的优先级一个

场景-假设列表中有两个项目,都是中等优先级,每个项目50分。在添加第三项之前,将提出3条建议。那么比如说,

低建议-40/40+10

Med建议-33/33+34

高建议-25/25+50

如果if语句到处都是,那么在没有过于复杂的for循环的情况下如何开始编写算法呢?似乎有一个更简单的答案。是否可能将乘数分配给优先级,以增加/减少其余项目点的负变化率

级数的一般示例:

正文

Excel屏幕截图

谁将为项目分配点数和优先级,是否会进行任何类型的计算和/或除项目点数总和为100以外的其他条件是什么?用户通过选择三个优先级建议之一重新分配点数并分配新项目优先级。所以给两个中等优先级的项目加50/50分。当添加第三项时,用户将看到3个选项。新项目的下限可能为40/40+20。新项目的中间值为33/33+34。新项目的高值为25/25+50。现有项目的优先级将保留并用于重新分配建议的计算。好的,谁来决定一个新项目对应的Ts数量?您的项目1仅为一行,但项目5为5行。新的第6项是否会有6行?在T1,列表中只有1项的优先级为3。在T2处,列表中现在有2个项目,即项目1和项目2。每个T列表示列表中特定时间点的项目。其目的是显示每次向列表中添加附加项时分配如何更改的列表进度。第6项将有6行。每个现有项目一个,新项目一个。也许有更好的方法来说明这一点?首先,优先级不应该在每一列中重复,而是作为每一行的值(如屏幕截图所示)给出s/b。然后,我们可以创建一个考虑优先级和项目计数的公式。附图中M2的公式为
=四舍五入(100/和($L$2:OFFSET($L$2;M$1-1;0))*$L2;0)
,可向下或向右复制。我的公式忽略了一个要点,四舍五入导致总和小于或大于100,这可以通过更复杂的公式来解决。您可能希望绕过这些问题,并尝试找到更好的解决方案。
                        T1  T2  T3  T4  T5
    Item 1              100 60  35  32  25
    Priority (Item 1)   3   3   3   3   3
    Item 2                  40  30  25  15
    Priority (Item 2)       2   2   2   2
    Item 3                      35  33  25
    Priority (Item 3)           3   3   3
    Item 4                          10  10
    Priority (Item 4)               1   1
    Item 5                              25
    Priority (Item 5)                   3
    TOTALS              100 100 100 100 100