Last active
January 2, 2023 14:30
-
-
Save Zerumi/515e9214c779e1715611b32810a39d75 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Типовой расчет №2 по дисциплине "Дискретная математика" (программный уровень) | |
// Преподователь: Гилев Павел Андреевич | |
import java.util.Scanner; | |
public class Tipovik2 { | |
public static void main(String[] args) { | |
// input | |
Scanner scanner = new Scanner(System.in); | |
int n = scanner.nextInt(); | |
int m = scanner.nextInt(); | |
boolean[][] graph = new boolean[m][m]; | |
for (int i = 0; i < n; i++) | |
{ | |
int firstElement = scanner.nextInt() - 1; | |
int secondElement = scanner.nextInt() - 1; | |
graph[firstElement][secondElement] = true; | |
} | |
boolean reflectionTest = true; | |
boolean antiReflectionTest = true; | |
boolean symmetricalTest = true; | |
boolean antiSymmetricalTest = true; | |
boolean transitionTest = true; | |
boolean antiTransitionTest = true; | |
// reflection | |
for (int i = 0; i < m; i++) | |
{ | |
if (graph[i][i]) | |
{ | |
antiReflectionTest = false; | |
} | |
else | |
{ | |
reflectionTest = false; | |
} | |
} | |
// symmetrical | |
for (int a = 0; a < m; a++) | |
{ | |
for (int b = 0; b < m; b++) | |
{ | |
if(graph[a][b] && graph[b][a]) | |
{ | |
antiSymmetricalTest = false; | |
} | |
else if (graph[a][b] && !graph[b][a]) | |
{ | |
symmetricalTest = false; | |
} | |
} | |
} | |
// transition | |
for (int a = 0; a < m; a++) | |
{ | |
for (int b = 0; b < m; b++) | |
{ | |
if (a != b && graph[a][b]) | |
{ | |
for (int c = 0; c < m; c++) | |
{ | |
if(b != c && graph[b][c]) | |
{ | |
if (a != c && graph[a][c]) | |
{ | |
antiTransitionTest = false; | |
} | |
else if (a != c && !graph[a][c]) | |
{ | |
transitionTest = false; | |
} | |
} | |
} | |
} | |
} | |
} | |
// output | |
// reflection | |
if (reflectionTest && antiReflectionTest) | |
{ | |
System.out.println("Рефлексивное"); | |
System.out.println("Анти-рефлексивное"); | |
System.out.println("Не рефлексивное"); | |
} | |
else if (reflectionTest) | |
{ | |
System.out.println("Рефлексивное"); | |
} | |
else if (antiReflectionTest) | |
{ | |
System.out.println("Анти-рефлексивное"); | |
} | |
else | |
{ | |
System.out.println("Не рефлексивное"); | |
} | |
// symmetrical | |
if (symmetricalTest & antiSymmetricalTest) | |
{ | |
System.out.println("Симметричное"); | |
System.out.println("Анти-симметричное"); | |
System.out.println("Не симметричное"); | |
} | |
else if (symmetricalTest) | |
{ | |
System.out.println("Симметричное"); | |
} | |
else if (antiSymmetricalTest) | |
{ | |
System.out.println("Анти-симметричное"); | |
} | |
else | |
{ | |
System.out.println("Не симметричное"); | |
} | |
// transition | |
if (transitionTest && antiTransitionTest) | |
{ | |
System.out.println("Транзитивное"); | |
System.out.println("Анти-транзитивное"); | |
System.out.println("Не транзитивное"); | |
} | |
else if (transitionTest) | |
{ | |
System.out.println("Транзитивное"); | |
} | |
else if (antiTransitionTest) | |
{ | |
System.out.println("Анти-транзитивное"); | |
} | |
else | |
{ | |
System.out.println("Не транзитивное"); | |
} | |
System.out.println(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Тест 24
Пример ввода:
5 5
1 2
2 1
3 4
4 5
3 5
Пример вывода:
Анти-рефлексивное
Не симметричное
Транзитивное
Тест 25
Пример ввода:
4 5
1 2
3 4
3 5
4 5
Пример вывода:
Анти-рефлексивное
Анти-симметричное
Транзитивное
Тест 26
Пример ввода:
3 4
1 3
3 4
1 4
Пример вывода:
Анти-рефлексивное
Анти-симметричное
Транзитивное
Тест 27
Пример ввода:
5 4
1 3
3 4
1 4
2 3
3 2
Пример вывода:
Анти-рефлексивное
Не симметричное
Не транзитивное