Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. import javafx.util.Pair;
  2.  
  3. import java.util.*;
  4.  
  5. public class Algorithm1 {
  6.  
  7. public static void main(String[] args) {
  8. Random r = new Random();
  9. // Number of users
  10. int N = 25;
  11. int maxLnKvalue = 30;
  12. // Initialize LnK with pairs -> Pair(LnK_userNumber, LnK_value)
  13. List<Pair<Integer, Integer>> LnK = new ArrayList<>();
  14. for (int i = 0; i < N; i++) {
  15. LnK.add(new Pair<>(i + 1, r.nextInt(maxLnKvalue) + 1));
  16. }
  17.  
  18. // Print values
  19. System.out.print("\n(");
  20. for (int i = 0; i < N; i++) {
  21. System.out.print(String.format("L%d/K", i + 1));
  22. if (i != N - 1) System.out.print(", ");
  23. }
  24. System.out.print(") =\n(");
  25. for (int i = 0; i < N; i++) {
  26. System.out.print(LnK.get(i).getValue());
  27. if (i != N - 1) System.out.print(", ");
  28. }
  29. System.out.println(")\n");
  30.  
  31. // Sort LnK to get correct order (Algorithm 1 input)
  32. LnK.sort(Comparator.comparing(Pair::getValue));
  33.  
  34. ArrayList<Integer> S = algorithm1(LnK);
  35. Collections.sort(S);
  36. System.out.println("Dla powyższych wartości grupą użytkowników, która powinna wykonać obliczenia w chmurze są użytkownicy o numerach:");
  37. System.out.print("{");
  38. for (int i = 0; i < S.size(); i++) {
  39. System.out.print(S.get(i));
  40. if (i != S.size() - 1) System.out.print(", ");
  41. }
  42. System.out.print("}");
  43. }
  44.  
  45. private static ArrayList<Integer> algorithm1(List<Pair<Integer, Integer>> LnK) {
  46. // Get first user number
  47. ArrayList<Integer> S = new ArrayList<>();
  48. S.add(LnK.get(0).getKey());
  49. for (int t = 2; t <= LnK.size(); t++) {
  50. ArrayList<Integer> newS = new ArrayList<>(S);
  51. newS.add(LnK.get(t - 1).getKey());
  52. if (newS.size() > LnK.get(t - 1).getValue() + 1) break;
  53. else S = newS;
  54. }
  55. return S;
  56. }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement