Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javafx.util.Pair;
- import java.util.*;
- public class Algorithm1 {
- public static void main(String[] args) {
- Random r = new Random();
- // Number of users
- int N = 25;
- int maxLnKvalue = 30;
- // Initialize LnK with pairs -> Pair(LnK_userNumber, LnK_value)
- List<Pair<Integer, Integer>> LnK = new ArrayList<>();
- for (int i = 0; i < N; i++) {
- LnK.add(new Pair<>(i + 1, r.nextInt(maxLnKvalue) + 1));
- }
- // Print values
- System.out.print("\n(");
- for (int i = 0; i < N; i++) {
- System.out.print(String.format("L%d/K", i + 1));
- if (i != N - 1) System.out.print(", ");
- }
- System.out.print(") =\n(");
- for (int i = 0; i < N; i++) {
- System.out.print(LnK.get(i).getValue());
- if (i != N - 1) System.out.print(", ");
- }
- System.out.println(")\n");
- // Sort LnK to get correct order (Algorithm 1 input)
- LnK.sort(Comparator.comparing(Pair::getValue));
- ArrayList<Integer> S = algorithm1(LnK);
- Collections.sort(S);
- System.out.println("Dla powyższych wartości grupą użytkowników, która powinna wykonać obliczenia w chmurze są użytkownicy o numerach:");
- System.out.print("{");
- for (int i = 0; i < S.size(); i++) {
- System.out.print(S.get(i));
- if (i != S.size() - 1) System.out.print(", ");
- }
- System.out.print("}");
- }
- private static ArrayList<Integer> algorithm1(List<Pair<Integer, Integer>> LnK) {
- // Get first user number
- ArrayList<Integer> S = new ArrayList<>();
- S.add(LnK.get(0).getKey());
- for (int t = 2; t <= LnK.size(); t++) {
- ArrayList<Integer> newS = new ArrayList<>(S);
- newS.add(LnK.get(t - 1).getKey());
- if (newS.size() > LnK.get(t - 1).getValue() + 1) break;
- else S = newS;
- }
- return S;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement