Advertisement
ksoltan

CollatzSets

Apr 8th, 2015
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.48 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3.  
  4. public class CollatzSets {
  5.     public static ArrayList<Integer> genCollatzSequence(int n) {
  6.         ArrayList<Integer> sequence = new ArrayList<>();
  7.         while (n != 1) {
  8.             sequence.add(n);
  9.             if (n % 2 == 0) {
  10.                 n /= 2;
  11.             } else {
  12.                 n = n * 3 + 1;
  13.             }
  14.         }
  15.         sequence.add(1);
  16.         return sequence;
  17.     }
  18.  
  19.     public static ArrayList<Integer> getIntersectionOfSets(
  20.             ArrayList<Integer> A, ArrayList<Integer> B) {
  21.         ArrayList<Integer> intersection = new ArrayList<>();
  22.         for (int i = 0; i < A.size(); i++) {
  23.             int elem = A.get(i);
  24.             if (B.indexOf(elem) >= 0) {
  25.                 intersection.add(elem);
  26.             }
  27.         }
  28.         Collections.sort(intersection);
  29.         return intersection;
  30.     }
  31.  
  32.     public static ArrayList<Integer> getUnionOfSets(ArrayList<Integer> A,
  33.             ArrayList<Integer> B) {
  34.         ArrayList<Integer> union = getIntersectionOfSets(A, B);
  35.         for (int i = 0; i < A.size(); i++) {
  36.             int elem = A.get(i);
  37.             if (B.indexOf(elem) < 0) {
  38.                 union.add(elem);
  39.             }
  40.         }
  41.         for (int i = 0; i < B.size(); i++) {
  42.             int elem = B.get(i);
  43.             if (A.indexOf(elem) < 0) {
  44.                 union.add(elem);
  45.             }
  46.         }
  47.         Collections.sort(union);
  48.         return union;
  49.     }
  50.  
  51.     public static ArrayList<Integer> getUnionOfCollatz(int a, int b) {
  52.         return getUnionOfSets(genCollatzSequence(a), genCollatzSequence(b));
  53.     }
  54.    
  55.     public static ArrayList<Integer> getIntersectionOfCollatz(int a, int b) {
  56.         return getIntersectionOfSets(genCollatzSequence(a), genCollatzSequence(b));
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement