diff --git a/src/UE00_Other/MEDT/Plakat_CODING_Contest.java b/src/UE00_Other/MEDT/Plakat_CODING_Contest.java deleted file mode 100644 index 02b1726..0000000 --- a/src/UE00_Other/MEDT/Plakat_CODING_Contest.java +++ /dev/null @@ -1,54 +0,0 @@ -package UE00_Other.MEDT; - -import java.util.ArrayList; -import java.util.List; - -public class Plakat_CODING_Contest { - - static final String participation_fee = "20€"; - static final String grand_prize = "Macbook Pro M4"; - - public static List generateFibonacci(int length) { - List sequence = new ArrayList<>(); - int a = 0, b = 1; - while (sequence.size() < length) { - sequence.add(a); - int temp = a; - a = b; - b = temp + b; - } - return sequence; - } - public static List generateRandomNumbers(int count) { - List numbers = new ArrayList<>(); - for (int i = 0; i < count; i++) numbers.add((int) (Math.random() * 100) + 1); - return numbers; - } - public static int sumPrimes(List numbers) { - int sum = 0; - for (int number : numbers) if (isPrime(number)) sum += number; - return sum; - } - public static boolean isPrime(int number) { - if (number <= 1) return false; - for (int i = 2; i <= Math.sqrt(number); i++) if (number % i == 0) return false; - return true; - } - static void depthFirstSearch(Node node, List visited) { - if (node == null || visited.contains(node)) return; - System.out.println("Visited: " + node.name); - visited.add(node); - for (Node neighbor : node.neighbors) depthFirstSearch(neighbor, visited); - } - static class Node { - String name; - List neighbors; - Node(String name) { - this.name = name; - this.neighbors = new ArrayList<>(); - } - void addNeighbor(Node neighbor) { - neighbors.add(neighbor); - } - } -} \ No newline at end of file diff --git a/src/UE00_Other/MEDT/SUE/eightTowers.java b/src/UE00_Other/MEDT/SUE/eightTowers.java deleted file mode 100644 index c12c5d5..0000000 --- a/src/UE00_Other/MEDT/SUE/eightTowers.java +++ /dev/null @@ -1,33 +0,0 @@ -package UE00_Other.MEDT.SUE; - -public class eightTowers { - - public static final int dim = 8; - public static int[] columns = new int[dim]; - public static boolean[] lines = new boolean[dim]; - public static int counter = 0; - - public static void main(String[] args) { - tower(0); - System.out.println(counter); - } - - public static void tower(int column) { - if (column == dim) { - for (int i = 0; i < columns.length; i++) { - char c = (char) ('A' + i); - System.out.print(c + "" + columns[i] + " "); - } - System.out.println(); - counter++; - return; - } - for (int line = 0; line < dim; line++) { - if (lines[line]) continue; - lines[line] = true; - columns[column] = line; - tower(column + 1); - lines[line] = false; - } - } -} diff --git a/src/UE11_140125_Rekursion4/EightQueens.java b/src/UE11_140125_Rekursion4/EightQueens.java new file mode 100644 index 0000000..701f49c --- /dev/null +++ b/src/UE11_140125_Rekursion4/EightQueens.java @@ -0,0 +1,61 @@ +package UE11_140125_Rekursion4; + +public class EightQueens { + + public static final int dim = 8; + public static int counter = 0; + + public static int[] columns = new int[dim]; + public static boolean[] isBlockedRow = new boolean[dim]; + + public static boolean[] isBlockedD1 = new boolean[2 * dim - 1]; + public static boolean[] isBlockedD2 = new boolean[2 * dim - 1]; + + public static void main(String[] args) { + boolean giveDetailedOutput = false; + tower(0, giveDetailedOutput); + System.out.println(counter); + counter = 0; + queen(0, giveDetailedOutput); + System.out.println(counter); + } + + public static void tower(int column, boolean giveDetailedOutput) { + if (column == dim) { + counter++; + if (giveDetailedOutput) output(); + return; + } + for (int line = 0; line < dim; line++) { + if (isBlockedRow[line]) continue; + isBlockedRow[line] = true; + columns[column] = line; + tower(column + 1, giveDetailedOutput); + isBlockedRow[line] = false; + } + } + + public static void queen(int column, boolean giveDetailedOutput) { + if (column >= dim) { + counter++; + if (giveDetailedOutput) output(); + return; + } + for (int row = 0; row < dim; row++) { + int d1 = row + column, d2 = (dim - 1) - row + column; + if (isBlockedRow[row] || isBlockedD1[d1] || isBlockedD2[d2]) continue; + isBlockedRow[row] = isBlockedD1[d1] = isBlockedD2[d2] = true; + columns[column] = row; + queen(column + 1, giveDetailedOutput); + isBlockedRow[row] = isBlockedD1[d1] = isBlockedD2[d2] = false; + } + } + + public static void output() { + for (int i = 0; i < columns.length; i++) { + char c = (char) ('A' + i); + System.out.print(c + "" + (columns[i] + 1) + " "); + } + System.out.println(); + } +} diff --git a/src/UE11_140125_Rekursion4/Sudoku.java b/src/UE11_140125_Rekursion4/Sudoku.java new file mode 100644 index 0000000..1e1077b --- /dev/null +++ b/src/UE11_140125_Rekursion4/Sudoku.java @@ -0,0 +1,32 @@ +package UE11_140125_Rekursion4; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Arrays; +import java.util.List; + +public class Sudoku { + + public static void main(String[] args) { + String sudokuPath = "src/UE11_140125_Rekursion4/Sudokus/easy.sudoku"; + int[][] sudoku = readSudoku(sudokuPath); + print(sudoku); + } + + public static int[][] readSudoku(String path) { + int[][] sudoku = new int[9][9]; + try { + List input = Files.readAllLines(Path.of(path)); + + } catch (IOException e) { + throw new RuntimeException(e); + } + return sudoku; + } + + public static void print(int[][] in) { + for (int[] i : in) System.out.println(Arrays.toString(i)); + } + +} diff --git a/src/UE11_140125_Rekursion4/Sudokus/easy.sudoku b/src/UE11_140125_Rekursion4/Sudokus/easy.sudoku new file mode 100644 index 0000000..fada633 --- /dev/null +++ b/src/UE11_140125_Rekursion4/Sudokus/easy.sudoku @@ -0,0 +1,3 @@ +easy_01: .....71..15....7..39....8.5..2.5...8.6...291......1.6.....2.6......192.........53 +easy_02: .12..64...9........4.7..2..1......427.59......6.3.....9745..........3.....6..4.59 +easy_03: ........3.5...8.2...84..7.....2...34...6..8...4.3.5.97.62.5......4..3..9...7...5. diff --git a/src/UE11_140125_Rekursion4/Sudokus/expert.sudoku b/src/UE11_140125_Rekursion4/Sudokus/expert.sudoku new file mode 100644 index 0000000..aa539e6 --- /dev/null +++ b/src/UE11_140125_Rekursion4/Sudokus/expert.sudoku @@ -0,0 +1,3 @@ +expert_01: .5......3.18...7..47.........7.48.95.....3..7....953.8....3....1....4.8....9..4.6 +expert_02: ..8..6..2.9214...7......4.....7.4..8..68......4.5197..2..........5.9...4.....7291 +expert_03: .34.6.1.5...8.....26.1....81.6.4....45......2.8.....5..1.698...3.......6..235.... diff --git a/src/UE11_140125_Rekursion4/Sudokus/intermedia.sudoku b/src/UE11_140125_Rekursion4/Sudokus/intermedia.sudoku new file mode 100644 index 0000000..ab90edc --- /dev/null +++ b/src/UE11_140125_Rekursion4/Sudokus/intermedia.sudoku @@ -0,0 +1,3 @@ +intermedia_01: ..9245....7......8.3..1.2....2....4...5..9..3............9..7.18....7........3589 +intermedia_02: ..9.......38..4..7.4...6...4.......6....5341.........3..74..681.9.13...5.5...87.. +intermedia_03: .8...1...7.4...5.1..56...8..48......91..28...5.2.......9....1.....1.6974....8.6.. diff --git a/src/UE11_140125_Rekursion4/Sudokus/simple.sudoku b/src/UE11_140125_Rekursion4/Sudokus/simple.sudoku new file mode 100644 index 0000000..7fd625a --- /dev/null +++ b/src/UE11_140125_Rekursion4/Sudokus/simple.sudoku @@ -0,0 +1,3 @@ +simple_01: .......3....1..694........11493.5.2.....1..8....6....9.9.4.6.5.2........65..28.1. +simple_02: 3..8...7......94.6.27...8..68.....4................689..93.5.2.8..6......5..2.7.4 +simple_03: ...65.......4.8.2...49.3.8..53.....7.........6..3.....4..8..59.....3...492.7.4..6 diff --git a/src/UE11_140125_Rekursion4/UE11_Rekursion.pdf b/src/UE11_140125_Rekursion4/UE11_Rekursion.pdf new file mode 100644 index 0000000..8fc5638 Binary files /dev/null and b/src/UE11_140125_Rekursion4/UE11_Rekursion.pdf differ