From 12a2fa369bebf06753654ae56d607465419b0553 Mon Sep 17 00:00:00 2001
From: Cristiano Magro <cristiano.magro@vola.it>
Date: Sun, 05 Oct 2025 17:46:24 +0200
Subject: [PATCH] alcuni esercizi con array

---
 src/main/java/CouponCollector.java |   19 +++++++++
 src/main/java/Sample.java          |   30 +++++++++++++++
 src/main/java/PrimeSieve.java      |   30 +++++++++++++++
 3 files changed, 79 insertions(+), 0 deletions(-)

diff --git a/src/main/java/CouponCollector.java b/src/main/java/CouponCollector.java
new file mode 100644
index 0000000..9c15a48
--- /dev/null
+++ b/src/main/java/CouponCollector.java
@@ -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");
+    }
+}
diff --git a/src/main/java/PrimeSieve.java b/src/main/java/PrimeSieve.java
new file mode 100644
index 0000000..7857781
--- /dev/null
+++ b/src/main/java/PrimeSieve.java
@@ -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);
+    }
+}
diff --git a/src/main/java/Sample.java b/src/main/java/Sample.java
new file mode 100644
index 0000000..70d5406
--- /dev/null
+++ b/src/main/java/Sample.java
@@ -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]);
+        }
+    }
+}

--
Gitblit v1.8.0