add UE11
This commit is contained in:
@@ -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<Integer> generateFibonacci(int length) {
|
||||
List<Integer> 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<Integer> generateRandomNumbers(int count) {
|
||||
List<Integer> numbers = new ArrayList<>();
|
||||
for (int i = 0; i < count; i++) numbers.add((int) (Math.random() * 100) + 1);
|
||||
return numbers;
|
||||
}
|
||||
public static int sumPrimes(List<Integer> 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<Node> 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<Node> neighbors;
|
||||
Node(String name) {
|
||||
this.name = name;
|
||||
this.neighbors = new ArrayList<>();
|
||||
}
|
||||
void addNeighbor(Node neighbor) {
|
||||
neighbors.add(neighbor);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
61
src/UE11_140125_Rekursion4/EightQueens.java
Normal file
61
src/UE11_140125_Rekursion4/EightQueens.java
Normal file
@@ -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();
|
||||
}
|
||||
}
|
||||
32
src/UE11_140125_Rekursion4/Sudoku.java
Normal file
32
src/UE11_140125_Rekursion4/Sudoku.java
Normal file
@@ -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<String> 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));
|
||||
}
|
||||
|
||||
}
|
||||
3
src/UE11_140125_Rekursion4/Sudokus/easy.sudoku
Normal file
3
src/UE11_140125_Rekursion4/Sudokus/easy.sudoku
Normal file
@@ -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.
|
||||
3
src/UE11_140125_Rekursion4/Sudokus/expert.sudoku
Normal file
3
src/UE11_140125_Rekursion4/Sudokus/expert.sudoku
Normal file
@@ -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....
|
||||
3
src/UE11_140125_Rekursion4/Sudokus/intermedia.sudoku
Normal file
3
src/UE11_140125_Rekursion4/Sudokus/intermedia.sudoku
Normal file
@@ -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..
|
||||
3
src/UE11_140125_Rekursion4/Sudokus/simple.sudoku
Normal file
3
src/UE11_140125_Rekursion4/Sudokus/simple.sudoku
Normal file
@@ -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
|
||||
BIN
src/UE11_140125_Rekursion4/UE11_Rekursion.pdf
Normal file
BIN
src/UE11_140125_Rekursion4/UE11_Rekursion.pdf
Normal file
Binary file not shown.
Reference in New Issue
Block a user