//Pascal ABC.NET v3.1 сборка 1172
var
NA, NB, NC: integer;
function minim(ar: array of real; n: integer): real;
var
i: integer;
min: real;
begin
min := MaxReal;
for i := 0 to n - 1 do //динамические массивы индексируются с 0
if min > ar[i] then min := ar[i];
minim := min;
end;
begin
randomize;
write('NA:');readln(NA); //ввод размерностей
write('NB:');readln(NB);
write('NC:');readln(NC);
var a := ArrRandomReal(NA, 1, NA); //инициализация динамических массивов
var b := ArrRandomReal(NB, 1, NB);
var c := ArrRandomReal(NC, 1, NC);
a.println(' ');
writeln('Min:', minim(a, NA));
b.println(' ');
writeln('Min:', minim(b, NB));
c.println(' ');
writeln('Min:', minim(c, NC));
end.
Пример ввода:
NA:3
NB:4
NC:5
Пример вывода:
2.45183664907321 2.12786289357015 2.8286734511278
Min:2.12786289357015
3.47355249453036 1.03827733129183 2.42042394141686 2.17556424353996
Min:1.03827733129183
3.9204495134393 3.64103751938838 3.57791954771519 4.31033914690387 4.13624760282051
Min:3.57791954771519
#include <iostream>
#include <set>
#include <iterator>
using namespace std;
int main()
{
string s;
set<char> mySet;
set<char>::iterator it;
int k=0;
cout << "s = ", cin >> s, cout << endl;
for(int i=0;i<s.length();i++)
mySet.insert(s[i]);
for(it=mySet.begin(); it!=mySet.end(); ++it)
cout<<*it<<" ";
k=mySet.size();
cout << endl << "k = " << k;
return 0;
}
Т.к. язык не указан, написал на паскале.
На сколько я понял, это должно выглядеть как-то так:
https://pastebin.com/puua5grq
1. Любое число может быть закодировано.(На крайний случай можно вспомнить анекдот - очень дофига).
3. В доме 8 подъездов. (выбор одного из 8 вариантов кодируется 3 битами ровно).
4. 4 символа.
5. 51.7 битов
6. 8 знаков - это 2 в 3 степени. Следовательно, 3 бита.
8. Содержательный подход - более эффективный.