Відповідь:
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
void randarr(int *A,const int size){
for(int i = 0; i < size; i++){
A[i] = rand() % 201 - 100;
}
}
void printarr(int *A,const int size){
for(int i = 0; i < size; i++){
cout << A[i] << " ";
}
}
float expression(int *A,int size){
float sum = 0;
int counter = 0;
for(int i = 0; i < size; i++){
if(A[i] > 0){
sum += A[i];
counter++;
}
}
sum /= counter;
return sum;
}
const int size = 10;
int main(){
srand(time(NULL));
setlocale(LC_ALL , "Ukrainian");
int A[size];
randarr(A,size);
printarr(A,size);
cout << "\nСереднє арифметичне додатнiх чисел = " << expression(A,size) << endl;
return 0;
}
1) K =20 N=128 найти I
N=2^i 128=2^7
i=7 бит
i=Ki=20*7=140 бит.
2) Задание лишено смысла, т. к. символ никогда не кодируется частью байта. Но допустим, что под байтом тут просто понимается массив из 8 битов. Тогда 2^(30 * 8 / 40) = 64.
3) Считаем количество символов в сообщении:
3 * 25 * 60 = 4500;
Сообщение занимает 1125 байт. Считаем, сколько байт занимает каждый символ:
1125 / 4500 = 0.25;
Т.к. символ занимает 0.25 байт, одним байтом можно закодировать 4 символа. Байт состоит из 8 бит.
8 / 4 = 2 (количество битов чтобы закодировать каждый символ)
Двумя битами можно закодировать 4 символа, => в алфавите может быть до 4-х символов.
Объяснение: