Subversion Repositories distributed

Rev

Rev 30 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. package de.viathinksoft.immortal.internal;
  2.  
  3. import java.math.BigInteger;
  4.  
  5. public class Endzeitpunkt {
  6.  
  7.         // Allgemeine Daten zum Test (GenX)
  8.         private static final BigInteger TEST_BEGINN = new BigInteger("1291006160");
  9.  
  10.         // Der alte Algorithmus (r19)
  11.         // private static final int ABSCHNITT_STEP = 3;
  12.         // private static final BigInteger ABSCHNITT_BEGINN = new BigInteger("789");
  13.         // private static final BigInteger ABFALL_MEDIAN = new BigInteger("199");
  14.  
  15.         // Der neue Algorithmus (r20)
  16.         // private static final int ABSCHNITT_STEP = 29;
  17.         // private static final BigInteger ABSCHNITT_BEGINN = new
  18.         // BigInteger("94923");
  19.         // private static final BigInteger ABFALL_MEDIAN = new BigInteger("30");
  20.  
  21.         // Das erste C-Programm (c 1.0)
  22.         // private static final int ABSCHNITT_STEP = 76;
  23.         // private static final BigInteger ABSCHNITT_BEGINN = new
  24.         // BigInteger("215715");
  25.         // private static final BigInteger ABFALL_MEDIAN = new BigInteger("43");
  26.  
  27.         // Das erste C-Programm mit Optimierung (c 1.2)
  28.         private static final int ABSCHNITT_STEP = 83;
  29.         private static final BigInteger ABSCHNITT_BEGINN = new BigInteger("230516");
  30.         private static final BigInteger ABFALL_MEDIAN = new BigInteger("11");
  31.  
  32.         private static BigInteger f(int u) {
  33.                 BigInteger res = ABSCHNITT_BEGINN;
  34.                 for (int i = ABSCHNITT_STEP + 1; i <= u; i++) {
  35.                         res = res.add(ABFALL_MEDIAN.multiply(BigInteger.valueOf(i)));
  36.                 }
  37.                 return res;
  38.         }
  39.  
  40.         private static BigInteger u(int u) {
  41.                 return f(u).add(TEST_BEGINN);
  42.         }
  43.  
  44.         public static void main(String[] args) {
  45.                 int max_step = Integer.MAX_VALUE / 100000;
  46.  
  47.                 System.out.println("End time for step: " + max_step);
  48.                 System.out.println(u(max_step));
  49.         }
  50.  
  51. }
  52.