From 0e284a3b0e031f2c6d59b12112df1a6c3bc5b289 Mon Sep 17 00:00:00 2001
From: Cristiano Magro <cristiano.magro@vola.it>
Date: Sun, 05 Oct 2025 02:31:57 +0200
Subject: [PATCH] Esame seconda lezione

---
 src/main/java/BandMatrix.java          |   17 ++++++++
 src/main/java/RandomWalkers.java       |   33 ++++++++++++++++
 src/main/java/RandomWalker.java        |   25 ++++++++++++
 src/main/java/GeneralizedHarmonic.java |   13 ++++++
 4 files changed, 88 insertions(+), 0 deletions(-)

diff --git a/src/main/java/BandMatrix.java b/src/main/java/BandMatrix.java
new file mode 100644
index 0000000..4344052
--- /dev/null
+++ b/src/main/java/BandMatrix.java
@@ -0,0 +1,17 @@
+public class BandMatrix {
+    public static void main(String[] args) {
+        int n = Integer.parseInt(args[0]);
+        int distanza = Integer.parseInt(args[1]);
+
+        for (int i = 0; i < n; i++) {
+            for (int j = 0; j < n; j++) {
+                if (Math.abs(i - j) <= distanza) {
+                    System.out.print("*  ");
+                } else {
+                    System.out.print("0  ");
+                }
+            }
+            System.out.println();
+        }
+    }
+}
diff --git a/src/main/java/GeneralizedHarmonic.java b/src/main/java/GeneralizedHarmonic.java
new file mode 100644
index 0000000..bc238e6
--- /dev/null
+++ b/src/main/java/GeneralizedHarmonic.java
@@ -0,0 +1,13 @@
+public class GeneralizedHarmonic {
+    public static void main(String[] args) {
+        int n = Integer.parseInt(args[0]);
+        int m = Integer.parseInt(args[1]);
+        double sum = 0.0;
+
+        for (int i = 1; i <= n; i++) {
+            sum += 1.0 / Math.pow(i, m);
+        }
+
+        System.out.println(sum);
+    }
+}
diff --git a/src/main/java/RandomWalker.java b/src/main/java/RandomWalker.java
new file mode 100644
index 0000000..0826eb3
--- /dev/null
+++ b/src/main/java/RandomWalker.java
@@ -0,0 +1,25 @@
+public class RandomWalker {
+    public static void main(String[] args) {
+        int x = 0;
+        int y = 0;
+        int passi = 0;
+        int limite = Integer.parseInt(args[0]);
+
+        System.out.println("(" + x + "," + y + ")");
+        while (Math.abs(x) + Math.abs(y) < limite) {
+            double r = Math.random();
+            if (r < 0.25) {
+                x++;
+            } else if (r < 0.5) {
+                x--;
+            } else if (r < 0.75) {
+                y++;
+            } else {
+                y--;
+            }
+            passi++;
+            System.out.println("(" + x + "," + y + ")");
+        }
+        System.out.println("steps = " + passi);
+    }
+}
diff --git a/src/main/java/RandomWalkers.java b/src/main/java/RandomWalkers.java
new file mode 100644
index 0000000..b7ad8cc
--- /dev/null
+++ b/src/main/java/RandomWalkers.java
@@ -0,0 +1,33 @@
+public class RandomWalkers {
+    public static void main(String[] args) {
+
+        int limite = Integer.parseInt(args[0]);
+        int cicli = Integer.parseInt(args[1]);
+        int totalePassi = 0;
+        for (int i = 0; i < cicli; i++) {
+
+            int x = 0;
+            int y = 0;
+            int passi = 0;
+
+            while (Math.abs(x) + Math.abs(y) < limite) {
+                double r = Math.random();
+                if (r < 0.25) {
+                    x++;
+                } else if (r < 0.5) {
+                    x--;
+                } else if (r < 0.75) {
+                    y++;
+                } else {
+                    y--;
+                }
+                passi++;
+            }
+
+            totalePassi += passi;
+        }
+
+        System.out.println("average number of steps = " + ((double) totalePassi / cicli));
+    }
+
+}

--
Gitblit v1.8.0