А в чём проблема?
Определяем алфавит: (а, и, й, м, н, о, р, ф, ц, ы).
Считаем символы (распределение вероятности).
а | и | й | м | н | о | р | ф | ц | ы
1 | 2 | 1 | 1 | 3 | 2 | 1 | 1 | 1 | 1
Строим накопительную сумму
а | и | й | м | н | о | р | ф | ц | ы
1 | 3 | 4 | 5 | 8 | 10 | 11 | 12 | 13 | 14
Приводим в отрезок [0,1) делением на общую сумму (14)
а | и | й | м | н | о | р | ф | ц | ы
0.071 | 0.214 | 0.286 | 0.357 | 0.571 | 0.714 | 0.786 | 0.857 | 0.929 | 1
Кодируем сообщение
старт - [0, 1)
и - [0.071, 0.214)
н - [0.122, 0,153)
ф - [0.1465, 0.1486)
...
й - [0.147980532221506, 0.147980532221545)
Берём середину интервала, получаем кодированное сообщение 0.147980532221526