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