OSDN Git Service

修正用
[chemicraft/chemicraft.git] / src / chemicraft / util / MathHelperPlus.java
index 775a77e..a4fbb2b 100644 (file)
@@ -3,29 +3,42 @@ package chemicraft.util;
 import java.util.ArrayList;
 import java.util.Random;
 
-public class MathHelperPlus {
-
-       public static Random rand = new Random();
+public class MathHelperPlus
+{
 
        /**
         * Return probability(0~).
         */
-       public static int probability(double... par1) {
+       public static int probability(double... par1)
+       {
                ArrayList<Double> var1 = new ArrayList<Double>();
-               for (int var2 = 0; var2 < par1.length; var2++) {
+               for (int var2 = 0; var2 < par1.length; var2++){
                        var1.add(par1[var2]);
                }
                return probability(var1);
        }
 
-       public static int probability(ArrayList<Double> par1) {
-               for (int i = 0; i < par1.size(); i++) {
-                       double var1 = par1.get(i) / 100;
-                       double var2 = Math.random();
-                       if (var1 <= var2) {
-                               return i;
+       public static int probability(ArrayList<Double> par1)
+       {
+               Random var2 = new Random();
+               int var3 = var2.nextInt(100);
+               double var4 = 0.0D;
+
+               for (int var5 = 0; var5 < par1.size(); var5++) {
+                       var4 += par1.get(var5);
+               }
+
+               ArrayList<Double> var6 = new ArrayList<Double>();
+               for (int var7 = 0; var7 < par1.size(); var7++) {
+                       var6.add(par1.get(var7) / var4 * 100);
+               }
+
+               double var8 = 0.0D;
+               for (int var9 = 0; var9 < var6.size(); var9++) {
+                       if (var3 < var6.get(var9) + var8) {
+                               return var9;
                        } else {
-                               continue;
+                               var8 += var6.get(var9);
                        }
                }
                return -1;