Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Collections;
- public class CollatzSets {
- public static ArrayList<Integer> genCollatzSequence(int n) {
- ArrayList<Integer> sequence = new ArrayList<>();
- while (n != 1) {
- sequence.add(n);
- if (n % 2 == 0) {
- n /= 2;
- } else {
- n = n * 3 + 1;
- }
- }
- sequence.add(1);
- return sequence;
- }
- public static ArrayList<Integer> getIntersectionOfSets(
- ArrayList<Integer> A, ArrayList<Integer> B) {
- ArrayList<Integer> intersection = new ArrayList<>();
- for (int i = 0; i < A.size(); i++) {
- int elem = A.get(i);
- if (B.indexOf(elem) >= 0) {
- intersection.add(elem);
- }
- }
- Collections.sort(intersection);
- return intersection;
- }
- public static ArrayList<Integer> getUnionOfSets(ArrayList<Integer> A,
- ArrayList<Integer> B) {
- ArrayList<Integer> union = getIntersectionOfSets(A, B);
- for (int i = 0; i < A.size(); i++) {
- int elem = A.get(i);
- if (B.indexOf(elem) < 0) {
- union.add(elem);
- }
- }
- for (int i = 0; i < B.size(); i++) {
- int elem = B.get(i);
- if (A.indexOf(elem) < 0) {
- union.add(elem);
- }
- }
- Collections.sort(union);
- return union;
- }
- public static ArrayList<Integer> getUnionOfCollatz(int a, int b) {
- return getUnionOfSets(genCollatzSequence(a), genCollatzSequence(b));
- }
- public static ArrayList<Integer> getIntersectionOfCollatz(int a, int b) {
- return getIntersectionOfSets(genCollatzSequence(a), genCollatzSequence(b));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement