nadjasokolova2017
?>

Чем отличается формула хартли от формулы шеннона?

Информатика

Ответы

antoska391
Для вероятностного подхода к определению количества  информации формула хартли может быть использована в следующем виде: i = log2n=log2(1/p)                или              1/p = 2n но, для определения количества информации не всегда возможно использовать формулу хартли. например, при алфавитном подходе к кодированию информации, все символы, записанные с этого алфавита, могут встречаться одинаково часто. но, в действительности символы алфавитов естественных языков в сообщениях появляются с разной частотой.
danielianruz
Если вероятности сообщений в наборе p1, ..pn равны между собой, то каждая из них равна 1/n, и формула шеннона превращается в формулу хартли.
nadezhdasvirina

using system;

using system.text.regularexpressions;

internal class program

{

private static void main()

{

var test_lines = new[]

{

"я сегодня съела 2 булочки, 7 сосисок и выпила 3 чашки кофе.",

"старший брат родился в 1990 году, а младший - в 2000г.",

"мне нравится книга '100 лет одиночества'"

};

foreach (var test_line in test_lines)

{

console.writeline(test_line);

console.writeline("самое большое число в строке {0} или {1}", findmaxnumber(test_line), findmaxnumberwithregex(test_line));

}

console.writeline();

console.writeline("введите строку");

var line = console.readline();

console.writeline("самое большое число в строке {0} или {1}", findmaxnumber(line), findmaxnumberwithregex(line));

console.readkey();

}

private static int findmaxnumberwithregex(string line)

{

var matches = regex.matches(line, @"[0-9]+"); //находим все вхождения цифр в строку, не зависимо от того часть это слова или нет

if (matches.count < 1) return -1;

var max = -1; //предполагаем что ищем лишь положительные числа

foreach (match match in matches)

{

var num = int.parse(match.value); //переводим строку в число, то что это число мы уже знаем

max = math.max(max, num);

}

return max;

}

private static int findmaxnumber(string line)

{

var words = line.split(new[] { ' ', ',', '.', '-', ': ' }, stringsplitoptions.removeemptyentries); //разбивает строку на массив строк

var max = -1; //предполагаем что ищем лишь положительные числа

foreach (var word in words)

{

if (int.tryparse(word, out var num) & & num > max) //если слово есть число и оно больше максимума

{

max = num;

}

}

return max;

}

}

Сергеевна
Const   nn=100; type   abit=record       fio: string;       ball: array[1..3] of byte;       from: string;       midb: real   end; var   t: abit;   mab: array[1..nn] of abit;   i,j,n,m: integer;   midinst: real; begin   { ввод исходных данных }   write('количество абитуриентов (до 100): '); readln(n);   write('средний по институту: '); readln(midinst);   m: =0;   for i: =1 to n do   begin       writeln('абитуриент № ',i);       with mab[i] do begin           write('фамилия, и.о.: '); readln(fio);           write(' по трем предметам через пробел: ');           readln(ball[1],ball[2],ball[3]);           midb: =(ball[1]+ball[2]+ball[3])/3;           write('место жительства: '); readln(from)           end;       if mab[i].midb> midinst then m: =m+1;   end;   { простейшая обменная сортировка по убыванию }   for i: =1 to n-1 do       for j: =i+1 to n do           if mab[i].midb< mab[j].midb then begin               t: =mab[i];               mab[i]: =mab[j];               mab[j]: =t           end;   { вывод }   writeln;   writeln('количество поступающих со средним выше среднеинститутского: ',m);   for i: =1 to n do       with mab[i] do             writeln(fio,' ',ball[1]: 2,ball[2]: 2,ball[3]: 2,' ',from) end. тестовое решение: количество абитуриентов (до 100): 4 средний по институту: 5.94 абитуриент № 1 фамилия, и.о.: иванов а.г. по трем предметам через пробел: 9 7 5 место жительства: вологда абитуриент № 2 фамилия, и.о.: петров л.л. по трем предметам через пробел: 9 9 9 место жительства: грязевец абитуриент № 3 фамилия, и.о.: раковский д.г. по трем предметам через пробел: 4 4 5 место жительства: сокол абитуриент № 4 фамилия, и.о.: акимова я.с. по трем предметам через пробел: 9 5 4 место жительства: харовск количество поступающих со средним выше среднеинститутского: 3 петров л.л.  9 9 9 грязевец иванов а.г.  9 7 5 вологда акимова я.с.  9 5 4 харовск раковский д.г.  4 4 5 сокол

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Чем отличается формула хартли от формулы шеннона?
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Леонтьева
reznikvi
keshka12719
владимировнаКлютко
Равиль_Евгеньевич1808
director
eoils-info
Александрович
fafina12586
ur101679
eizmaylova6
daverkieva568
oskina3
boyarinovigor
zodgener