Stwórz funkcję zwracającą liczbę losową z przedziału 1 – X. Wygeneruj Y losowych liczb. Za
pomocą Mapy (klucz= liczba z przedziału 1 – X, wartość= ilość wystąpień danej liczby) zbierz
wyniki losowania. Wyświetl zebrane wyniki. X i Y to parametry liczbowe wprowadzone przez
użytkownika.

Język: Java


Odpowiedź :

Odpowiedź:

import java.util.HashMap;

import java.util.Map;

import java.util.Scanner;

public class Main {

   static int returnRandomNumber(int X) {

       return (int) (Math.random() * X + 1);

   }

   static int[] tabOfRandomNumbers(int X, int Y) {

       int[] tab = new int[Y];

       for (int i = 0; i < Y; i++) {

           tab[i] = returnRandomNumber(X);

       }

       return tab;

   }

   public static void main(String[] args) {

       Scanner scanner = new Scanner(System.in);

       int X = scanner.nextInt();

       int Y = scanner.nextInt();

       Map<Integer, Integer> numberOccurences = new HashMap<>();

       int[] tab = tabOfRandomNumbers(X, Y);

       for (int number : tab) {

           if (numberOccurences.containsKey(number)) {

               numberOccurences.put(number, numberOccurences.get(number) + 1);

           } else {

               numberOccurences.put(number, 1);

           }

       }

       for(Map.Entry <Integer, Integer> entry : numberOccurences.entrySet()){

           System.out.println(entry.getKey() + " " + entry.getValue());

       }

   }

}

Wyjaśnienie:

Jak coś niejasne to pytaj. Mam nadzieję też, że dobrze zrozumiałem polecenie xd