#include <iostream>
#include <vector>
using namespace std;
// глобальные переменные
const int arraySize = 10;
vector <int> numbers;
// сам алгоритм.
void result(){
// совет - обьявляй все переменные в начале функции
int leader = 0;
int maxCount = 0;
int count = 0;
// поиск самого частого числа
for (int c = 0; c < 9;c++){
// обнуляем счетчик
count = 0;
for (int c1 = 0;c1 < arraySize;c1++){
if (numbers[c1] == c) count++;
}
// проверка на лидера
if (maxCount < count){
leader = c;
maxCount = count;
}
}
// ну..с посмотрим:
cout << "Leader: " << leader << " (" << maxCount << ") " << std::endl;
}
int main()
{
// подготовка масива
srand(time(NULL)); // обнулем внутрений таймер для полного рандома
for (int c = 0; c < arraySize;c++) {
numbers.push_back(rand() % 9); // заполняем масив числами
}
// посмотрим на оригинальный масив
cout << "Original array: ";
for (int c = 0;c < arraySize;c++) cout << numbers[c] << " ";
cout << std::endl;
// сортировка
result();
return 0;
}
Объяснение:
Хорошая книга по с++: Герберт Шилд - с++ базовый курс.
( (x ∈ P) /\ (x ∈ А)) → ( (x ∈ Q) /\ (x ∈ А)) = 1
-( (x ∈ P) /\ (x ∈ А)) \/ ( (x ∈ Q) /\ (x ∈ А)) = 1 (убрали стрелочку)
-(x ∈ P) \/ -(x ∈ А) \/ ((x ∈ Q) /\ (x ∈ А)) = 1 (правило де Моргана)
-(x ∈ P) \/ (-(x ∈ А) \/ (x ∈ Q)) /\ (-(x ∈ А) \/ (x ∈ А)) = 1
-(x ∈ P) \/ -(x ∈ А) \/ (x ∈ Q) = 1
x ∈ (-P U Q U -A) = 1
т.е. -P U Q U -A = (-infinity; +infinity)
-P U Q = (-infinity; 39) U (58; +infinity)
нужно чтоб -А покрыло оставшийся кусок [39; 58] т.е. А не должно содержать [39; 58]
из предложенных это 1) [5, 20]
2) Алфавит из 18 символов, log(18)/log(2) = 4.16992500144231 {округляем до целого} ~= 5 бит на символ
Вес номера байт = 5бит * 6 / 8 = 3.75 байт {округляем до целого} ~= 4 байт
400 * 4 байт = 1600 байт
3) Комбинаторика - Размещение с повторениями
n - кол-во элементов в наборе (у нас 4)
k - кол-во мест (у нас 5 и 6)
Количество размещений с повторениями = `A(k,n) = n^k
`A(5, 4) + `A(6, 4) = 4^5 + 4^6 = 5 120