Вот текстовый файл: 1000 строк по 33 цифры, разделённых пробелами. Ваша задача - сосчитать, сколько в файле строк, в которых можно найти повторяющуюся комбинацию из 4 цифр.
Пример: в строке 6 8 7 9 0 4 5 6 7 9 0 4 8 8 2 1 такая комбинация есть, а вот в 5 4 8 7 9 3 7 7 7 7 7 4 0 0 1 повторяющихся комбинаций, не накладывающися друг на друга, нет.
{1, 3, 4, 5, 7, 9}, {1, 5, 9}, {3, 4, 7}, {2, 6}
Объяснение:
1) Объединение A и C - все элементы, которые входят хотя бы в одно из множеств A, C. Но так как A - подмножество C (полностью входит в C), то объединение - это просто C: {1, 3, 4, 5, 7, 9}.
2) Пересечение A и C - все элементы, которые входят одновременно в оба множества A и C. В данном случае пересечение - это просто A: {1, 5, 9}.
3) Дополнение A до C - все элементы, которые лежат в C, но не в A: {3, 4, 7}.
4) Дополнение пересечения B и C до B: сюда должны входить все элементы, принадлежащие B, но не принадлежащие пересечению. Можно сообразить, что это превратится просто во все элементы B, не принадлежащие C: {2, 6}
Язык Java
import java.util.*;
import java.io.*;
public class Main {
static int _16yearsOld = 0;
static int min = 14;
static int max = 16;
static int diff = max - min;
static Random random = new Random();
static int rand = random.nextInt(diff + 1);
rand += min;
public static void main(string[] args) {
int[] students = new int[19];
for (int i = 0; i <= students.size(); i++) {
students[i] = rand;
}
for (int i = 0; i <= students.size(); i++) {
if (students[i] == 16)
_16yearsOld++;
}
}
}