Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.97 KB | None | 0 0
  1.     public String simulatePreviousGeneration(String currentGeneration) {
  2.  
  3.         //current individuals
  4.         String cg = currentGeneration.replaceAll("\\+", "");
  5.         //previous generation
  6.         char[] prev = new char[size];
  7.         Arrays.fill(prev, '+');
  8.  
  9.         //iterate over current individuals
  10.         for (int i = 0; i < cg.length(); i++) {
  11.             //50/50 if they're from the previous generation
  12.             if (random.nextBoolean()) {
  13.                 //find a random place
  14.                 int r = random.nextInt(size);
  15.                 while (prev[r] != '+')
  16.                     r = random.nextInt(size);
  17.                 prev[r] = cg.charAt(i);
  18.             }
  19.         }
  20.  
  21.         //catch the case that none make it by chance
  22.         // /at least 1 parent must exist
  23.         if (new String(prev).replaceAll("\\+", "").length() < 1)
  24.             prev[random.nextInt(size)] = cg.charAt(random.nextInt(cg.length()));
  25.  
  26.         return new String(prev);
  27.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement