Cristiano Magro
2025-10-05 12a2fa369bebf06753654ae56d607465419b0553
alcuni esercizi con array
3 files added
79 ■■■■■ changed files
src/main/java/CouponCollector.java 19 ●●●●● patch | view | raw | blame | history
src/main/java/PrimeSieve.java 30 ●●●●● patch | view | raw | blame | history
src/main/java/Sample.java 30 ●●●●● patch | view | raw | blame | history
src/main/java/CouponCollector.java
New file
@@ -0,0 +1,19 @@
public class CouponCollector {
    public static void main(String[] args) {
        int n = Integer.parseInt(args[0]);
        boolean[] trovato = new boolean[n];
        int distinti = 0;
        int tentativi = 0;
        while (distinti < n) {
            int r = (int) (Math.random() * n);
            tentativi++;
            if (!trovato[r]) {
                trovato[r] = true;
                distinti++;
            }
        }
        System.out.println(tentativi + " tentativi");
    }
}
src/main/java/PrimeSieve.java
New file
@@ -0,0 +1,30 @@
public class PrimeSieve {
    public static void main(String[] args) {
        int n = Integer.parseInt(args[0]);
        boolean[] primo = new boolean[n + 1];
        // Inizializza tutti i numeri come primi
        for (int i = 2; i <= n; i++) {
            primo[i] = true;
        }
        // Implementa il Crivello di Eratostene
        for (int i = 2; i * i <= n; i++) {
            if (primo[i]) {
                for (int j = i * i; j <= n; j += i) {
                    primo[j] = false;
                }
            }
        }
        // conto tutti i numeri primi trovati
        int count = 0;
        for (int i = 2; i <= n; i++) {
            if (primo[i]) {
                count++;
            }
        }
        System.out.println(count + " numeri primi trovati fino a " + n);
    }
}
src/main/java/Sample.java
New file
@@ -0,0 +1,30 @@
public class Sample {
    /*
     * Genera un array di interi di dimensione 'stack',
     * poi lo riempie con 'stack' numeri casuali
     * stampa i primi 'campione' numeri dell'array
     */
    public static void main(String[] args) {
        int campione = Integer.parseInt(args[0]);
        int stack = Integer.parseInt(args[1]);
        int[] matrix = new int[stack];
        for (int i = 0; i < stack; i++) {
            matrix[i] = i;
        }
        //mescola l'array
        for (int i = 0; i < stack; i++) {
            int dove = (int) (Math.random() * stack);
            int temp = matrix[i];
            matrix[i] = matrix[dove];
            matrix[dove] = temp;
        }
        for (int i = 0; i < campione; i++) {
            System.out.println(matrix[i]);
        }
    }
}