Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
需要基于生成条形图%值输出的附加数组的c#归一化数学公式吗? 问题:_C#_Arrays_Percentage_Algebra - Fatal编程技术网

需要基于生成条形图%值输出的附加数组的c#归一化数学公式吗? 问题:

需要基于生成条形图%值输出的附加数组的c#归一化数学公式吗? 问题:,c#,arrays,percentage,algebra,C#,Arrays,Percentage,Algebra,因此,我希望根据与一组值的比较来创建条形图值 数据: 数组=[25,35,55,5,60,200,18,18,30,10] 要求: 我有一个使用CSS创建的工作条形图,它以百分比的形式加载条形宽度值'xx' 我想将最低的数组项值分配给100%的百分比值(CSS条的全宽)。上面的示例是第四个数组项“5” 同样,数组中的第六项是最高的数字,我想将0%分配给最高的数字。 (将数组中的数字视为时间-最短为最佳) 因此,最低(第四个)数组项“5”=条宽值100%,且 最高数组项“200”=条宽值0% 数组

因此,我希望根据与一组值的比较来创建条形图值

数据: 数组=[25,35,55,5,60,200,18,18,30,10]

要求: 我有一个使用CSS创建的工作条形图,它以百分比的形式加载条形宽度值'xx'

我想将最低的数组项值分配给100%的百分比值(CSS条的全宽)。上面的示例是第四个数组项“5” 同样,数组中的第六项是最高的数字,我想将0%分配给最高的数字。 (将数组中的数字视为时间-最短为最佳)

因此,最低(第四个)数组项“5”=条宽值100%,且

最高数组项“200”=条宽值0%

数组中最高值和最低值之间的排列为195

数组中有10个项目

整个数组的平均值为45.6,例如,如果在条形图中表示,将生成50%的条形图值

我正在努力创建一个公式,该公式可以动态地将上述各种数组值的反向百分比值生成为数组中任何项的代表性百分比条形图值

需要的特定帮助: 您能看到C#中的解决方案吗?这样我就可以根据上面概述的要求生成百分比条值

[编辑](包括部分有效的我的代码)
int[]数组={25,35,55,5,60,200,18,18,30,10};
int-selectdVal=5//从数组中选择的示例
int-ratioSpread=100//用作100%CSS宽度
int responseSlow=array.Max()//数组中最慢的val
decimal ratioAdjust=(ratioSpread/responseSlow);
decimal maxBar=100-(选择DVAL*ratioAdjust);

int renderBar=Convert.ToInt16(maxBar)这一术语的正确含义是“规范化”一组数据。因过于宽泛而搁置?请求帮助的请求非常具体。你要求我们为你做全部事情。这是一个过于宽泛的问题。在这个网站上,希望你自己尝试解决问题,展示你在这些尝试中遇到的问题,等等。这样我们才能帮助你做到这一点解决你的问题。太好了!非常感谢你。从你清晰的例子中,我完全明白我错在哪里:)
int[] array = { 25 , 35 , 55 , 5 , 60 , 200 , 18 , 18 , 30 , 10 };
int selectdVal = 5;  //example selection from array

int ratioSpread = 100; //used as 100% CSS width
int responseSlow = array.Max();  //The slowest val within array

decimal ratioAdjust = (ratioSpread / responseSlow);
decimal maxBar = 100 - (selectdVal * ratioAdjust );
int renderBar = Convert.ToInt16(maxBar <= 0 ? 1 : maxBar ); //show min 1% bar width
int[] array = { 25, 35, 55, 5, 60, 200, 18, 18, 30, 10 };
int selectdVal = 5;

int barMin = 1;
int barMax = 100;

decimal rangeMin = array.Min();
decimal rangeMax = array.Max();

decimal ratio = (barMax - barMin) / (rangeMax - rangeMin);

int bar = barMax - (int)(ratio * (selectdVal - rangeMin));