“规范化”概率数组 - c#

我有一个代表事件发生概率的双打数组,事件A,B..E的[25,25,25,10,15]。数字加起来为100。

通过我的分析,我希望能够消除某个事件是否发生的可能性。

因此,如果我发现事件E是不可能的,那么我将该索引设置为0。
如何重新规范化数组,使总数达到100,并保持每个事件的相对概率?

我将使用C#或Java。

参考方案

我假设概率将保持不变(即在您的示例中,第一双的新值可能应该为25/85)。然后,您需要做的是保存已删除的双精度数,然后将其减去100,然后将每个双精度数除以它,再乘以100。

Java代码:

double[] doubleArray = new double[] { 25, 25 ,25, 10, 15 }; //or any other array
double temp = 100-doubleArray[4]; //or any other specific value in the array
doubleArray[4] = 0;
for (int i; i<doubleArray.length; i++) {
    doubleArray[i] = doubleArray[i]/temp*100;
}

Java-固定大小的列表与指定初始容量的列表之间的差异 - java

我在理解这一点上遇到了问题。当我们做 List<Integer> list = Arrays.asList(array); 我们不能在该列表上使用添加,删除之类的方法。我知道Arrays.asList()返回固定大小的列表。我不明白的是,如果我们创建一个具有指定初始容量的列表,例如List<Integer> list2 = new A…

从方法返回数组-Java - java

private static Coordinate[] getCircleCoordintaes() { Coordinate coordinates[] = {new Coordinate(0, 0)}; return coordinates; } 以上程序工作正常。在上面的程序中,返回的坐标数组首先初始化了数组使用这条线Coordinate coordi…

JAVA:如何检查对象数组中的所有对象是否都是子类的对象? - java

我有一个对象数组。现在,我要检查所有这些对象是否都是MyObject的实例。有没有比这更好的选择:boolean check = true; for (Object o : justAList){ if (!(o instanceof MyObject)){ check = false; break; } } java大神给出的解决方案 如果您不喜欢循环,则…

Java从具有多列的文本文件中读取输入 - java

这是我需要处理的文本示例:年(空格)月(空格)名称(空格)年(空格)月(空格)名称(空格)年(sapce)月(空间)名称(空间)年(sapce)月(空间)名称(空间)...如何仅使用一列中的值创建数组?例如,第二列(月份)或最后一列(名称) 参考方案 读取每一行并在空间上分割,然后重新格式化数组。读取每一行并使用子字符串添加到数组中。读取每一行并使用正则表达…

JAVA:字节码和二进制有什么区别? - java

java字节代码(已编译的语言,也称为目标代码)与机器代码(当前计算机的本机代码)之间有什么区别?我读过一些书,他们将字节码称为二进制指令,但我不知道为什么。 参考方案 字节码是独立于平台的,在Windows中运行的编译器编译的字节码仍将在linux / unix / mac中运行。机器代码是特定于平台的,如果在Windows x86中编译,则它将仅在Win…