Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public String simulatePreviousGeneration(String currentGeneration) {
- //current individuals
- String cg = currentGeneration.replaceAll("\\+", "");
- //previous generation
- char[] prev = new char[size];
- Arrays.fill(prev, '+');
- //iterate over current individuals
- for (int i = 0; i < cg.length(); i++) {
- //50/50 if they're from the previous generation
- if (random.nextBoolean()) {
- //find a random place
- int r = random.nextInt(size);
- while (prev[r] != '+')
- r = random.nextInt(size);
- prev[r] = cg.charAt(i);
- }
- }
- //catch the case that none make it by chance
- // /at least 1 parent must exist
- if (new String(prev).replaceAll("\\+", "").length() < 1)
- prev[random.nextInt(size)] = cg.charAt(random.nextInt(cg.length()));
- return new String(prev);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement