Имя: Пароль:
1C
1С v8
Алгоритм Хаффмана для текста решение
0 JuixyJes
 
30.06.19
22:36
СЗ = Новый СписокЗначений;
    Для сч= 1 по (СтрДлина(ИсходныйТекст)) Цикл
        СЗ.Добавить(Сред(ИсходныйТекст,сч,1));    
    КонецЦикла;
    Для каждого Стр из СЗ Цикл
        
    КонецЦикла;
1 JuixyJes
 
30.06.19
22:37
Возможно я что то не так поняла, но все же. Я создала СЗ в котором будет каждый символ как строчка. Но как мне найти количество одинаковых вхождений для каждого символа?
2 H A D G E H O G s
 
30.06.19
23:09
Жесть.
Так ты Хаффмана не построишь
3 JuixyJes
 
30.06.19
23:17
(2) А каким образом мне его построить?
4 Garykom
 
гуру
30.06.19
23:22
Нахрена тебе это?

Возьми архиватор и не парь мозги или может с кодами Рида-Соломона путаешь?
5 H A D G E H O G s
 
30.06.19
23:22
(3) Вам не надо его строить.
Вам надо сменить специальность в ВУЗе
6 JuixyJes
 
30.06.19
23:23
(4) Нет, мне для общего развития требуется именно Хаффман. Ибо не хотят меня допускать до нормальной работы пока я не сделаю хаффмана. Я прекрасно понимаю как он работает.
7 Garykom
 
гуру
30.06.19
23:23
(5) Это скорее какой то сайт где курсовые и контрольные заказывают, по сути фриланс биржа.
Слишком большой разброс заданий.
8 Garykom
 
гуру
30.06.19
23:24
(6) Если понимаешь как он работает то я не понимаю проблем написать кодом.

Сколько символов для начала у тебя в алфавите/кодировке?
9 Garykom
 
гуру
30.06.19
23:25
Короче похрен, все символы имеют коды, эти коды что?
И можно завести линейный массив нужной длины куда писать количество для каждого символа в кодировке.
10 JuixyJes
 
30.06.19
23:26
(5) Вы не в праве решать что мне надо, а что мне не надо. Если я решила, что мне нужно реализовать алгоритм Хаффмана, значит мне нужно его реализовать, а свое мнение придержите при себе. Если вы не собираетесь помогать а будете только умничать, для этого есть другие темы. Не все вы сюда пришли такими умными и распрекрасными программистами.
11 Garykom
 
гуру
30.06.19
23:26
А делать через СЗ это только 1Сник со стажем, который алгоритмику не то что забыл, а никогда не знал ))
12 JuixyJes
 
30.06.19
23:27
(9) Я полагала что при отработке алгоритма он сам должен составить для себя какой то алфавит условный.
13 palsergeich
 
30.06.19
23:30
(10) Дерзко, но не к месту.
(12) Алгоритм сам по себе ничего не умеет, он делает ровно то что заложено.
(10) И да что бы чего то добиться - выезжать на хамстве не очень то верно. Вы с одной стороны вроде и говорите верные вещи, но реализация на 2-, 2 в 10 СС это показало.
14 palsergeich
 
30.06.19
23:31
Если Вы понимаете как это работает, переложить в код - нет ничего проще. Все проблемы, когда понятия нет
15 Garykom
 
гуру
30.06.19
23:31
(12) Для опытных специалистов немного дико выглядит, когда некто берется за задачу не своего уровня.
Даже если сможет сделать то результат будет говно.

Для самообучения же лучше заниматься последовательно, начиная с более простых задач, чтобы когда подойти к подобной уже обладать неким опытом и объемом знаний.

Тогда и тупых вопросов не будет, вызывающих подобную (5) реакцию.
16 H A D G E H O G s
 
30.06.19
23:33
(10)

Я знаю, скоро утро взорвется рассветом.
И это будет последний мирный рассвет.
Здравствуй дружок, ты хотел быть поэтом?
Что же, прошу к амбразуре – теперь ты поэт.

Были артерии трасс и оазисы станций,
Все что увидеть успел, запиши, и пора,
Мирно живут только те, кому не за что драться,
Ты стал слишком взрослым, ты понял что это война.


Ты хотел быть поэтом?
17 JuixyJes
 
30.06.19
23:34
(13) Ну уж извините, хамство не хамство, но для меня это оскорбление. Поэтому такая реакция. Я принимаю критику, но извините, не такое.
18 JuixyJes
 
30.06.19
23:36
(13) а насчет реализации на 2- я могу сказать честно, я не понимаю как его реализовать, могу на бумаге его спокойно расписать, а вот алгоритм в программе....
19 palsergeich
 
30.06.19
23:38
(18) Точно так же
20 palsergeich
 
30.06.19
23:39
(19) в первой итерации делаешь ровно то что написано на бумаге, потом доводишь до ума.
Я именно так и пишу, сначала схемка, потом набросок 1ой итерациии, потом полировка
21 JuixyJes
 
30.06.19
23:41
(20) Хорошо, постараюсь так и сделать.
22 H A D G E H O G s
 
30.06.19
23:42
ТаблицаЧастот= Новый ТаблицаЗначений;
ТаблицаЧастот.Колонки.Добавить("Символ");
ТаблицаЧастот.Колонки.Добавить("КоличествоСимволов",Новый ОписаниеТипов("Число"));
ТаблицаЧастот.Индексы.Добавить("Символ");
    Для сч= 1 по (СтрДлина(ИсходныйТекст)) Цикл
        ТекущийСимвол=Сред(ИсходныйТекст,сч,1);
СтрокаТаблицыЧастот=ТаблицаЧастот.Найти(ТекущийСимвол,"Символ");
Если СтрокаТаблицыЧастот=Неопределено Тогда
СтрокаТаблицыЧастот=ТаблицаЧастот.Добавить();
СтрокаТаблицыЧастот.Символ=ТекущийСимвол;
КонецЕсли;
СтрокаТаблицыЧастот.КоличествоСимволов=СтрокаТаблицыЧастот.КоличествоСимволов+1;
    КонецЦикла;
ТаблицаЧастот.Сортировать("КоличествоСимволов Убыв");
23 palsergeich
 
30.06.19
23:44
(22) И зачем?
Если дать человеку рыбу он будет сыт один день.
Если дать сеть - то будет сыт всегда...
24 Garykom
 
гуру
30.06.19
23:46
(23) Человеку не нужна сеть, ему нужно нечто за проданную рыбу.
А сеть хрен продаш...
25 H A D G E H O G s
 
30.06.19
23:47
(23) Ну он хоть посмотрит, запустит отладчик, разбереться.
Это все же лучше, чем он будет смотреть в список как на новые ворота
26 Garykom
 
гуру
30.06.19
23:57
Не проще?

МассивЧастот = Новый Массив(65536);
Для сч= 1 по (СтрДлина(ИсходныйТекст)) Цикл
   ТекущийСимвол=Сред(ИсходныйТекст,сч,1);
   МассивЧастот[КодСимвола(ТекущийСимвол)] = МассивЧастот[КодСимвола(ТекущийСимвол)] + 1;
КонецЦикла;
27 H A D G E H O G s
 
01.07.19
00:00
(26) Проще, но не правильно.
28 Garykom
 
гуру
01.07.19
00:07
(27) Если текст очень большой и символов разных в нем дофига то решение на ТЗ помрет.
29 H A D G E H O G s
 
01.07.19
00:12
(28) Твое - помрет, мое - нет.
30 rphosts
 
01.07.19
02:38
(29) хм... да хз, скорее у тебя умрёт... поиск на всей таблице для каждого символа - не торт... от себя предложу 3 вариант: писать всё в таблицу а потом свернуть. если сподоблюсь - проверю все 3 варианта.
31 NorthWind
 
01.07.19
07:45
(8) ну, положим что проблем там достаточно. И подсчитать частоты встречаемости символов - это, пожалуй, пятидесятая часть от того что там надо будет сделать.
32 Сияющий в темноте
 
01.07.19
08:49
Ну,потом по частотам строить дерево.
просто,со массивом потом дерево строить,как со списком символы считать.
33 Сияющий в темноте
 
01.07.19
08:50
хотя,если в списке хранить число,а представление как символ,то вполне взлетит,до сворачивания.
просто,массив потом надо от нулей вычищать.
34 Garykom
 
гуру
01.07.19
09:28
(33) Не вычищать а всего один линейный проход выбрать не нулевые и одновременно сортировка.
35 DmitriyDI
 
01.07.19
09:34
(30) символов вроде не так много, так что должно работать быстро
36 FIXXXL
 
01.07.19
09:57
(30) и сколько строк для русского, к примеру, текста? :)
37 Garykom
 
гуру
01.07.19
10:00
(36) В какой кодировке то текст?
38 FIXXXL
 
01.07.19
10:01
(37) я не в курсе, ТС не рассказывает
39 Garykom
 
гуру
01.07.19
10:02
(38) Так это первый самый вопрос и не понимая что такое кодировки и чем они отличаются (есть подозрение что ТС не в курсе этого) какой к черту Хаффман.
40 Garykom
 
гуру
01.07.19
10:05
(39)+ Точнее можно написать и универсальные решения под любую практически кодировку.
Но это будут монстры на нечто вроде ТЗ, которые помрут на реальных текстах в больших кодировках.
41 H A D G E H O G s
 
01.07.19
10:09
Мое решение будет быстро на любом тексте, а решение Гарри помрет на от 20 Мб текста.
Быстрее моего решения - только разбить на потоки и писать в несколько тз, а потом слить результат в 1 тз.
42 АгентБезопасной Нацио
 
01.07.19
10:25
(41) в его решении от объема текста  (и распределения) зависит только число (счетчик встречаемости) в элементе массива. у тебя то же самое, только у тебя значительно меньше элементов, но больше затраты на индекс и поиск по индексу.
Почему у него умрет?
43 H A D G E H O G s
 
01.07.19
10:55
(42) Потому что Массив в 1С - это СвязныйСписок, а не кусок памяти.
44 Garykom
 
гуру
01.07.19
11:21
(41) ВК один фиг будет быстрее.
45 Garykom
 
гуру
01.07.19
11:22
(43) Угу сейчас вспомнил про это, такую фигню я обычно в памяти не держу, что 1С тут слегка того ибо типизации то нет, хз сколько памяти надо под элементы, хотя размер массива задан.
46 Garykom
 
гуру
01.07.19
11:23
Точно ТЗ с индексом будет быстрее Соответствия?
47 МихаилМ
 
01.07.19
11:26
отсортировать + СтрЧислоВхождений
48 МихаилМ
 
01.07.19
11:29
+(47) отсортировать  читать упорядочить
49 Garykom
 
гуру
01.07.19
11:37
(47) СтрЧислоВхождений слишком просто, проверяющие зарубят - "использование готовых библиотек"
50 МихаилМ
 
01.07.19
11:42
(49)
быстро отсортировать - не просто.
51 Garykom
 
гуру
01.07.19
11:54
(50) Ты фишки наверно не понял?


СЗ = Новый СписокЗначений;
Для ТекКодСимвола = 65536 По 1 Цикл
  ТекСимвол = Символ(ТекКодСимвола);
  Частота = СтрЧислоВхождений(ИсходныйТекст, ТекСимвол);
  СЗ.Добавить(ТекСимвол, Частота);
КонецЦикла
52 Garykom
 
гуру
01.07.19
11:55
(51)+ Условие Частота>0 сами надеюсь сами легко добавить?
53 H A D G E H O G s
 
01.07.19
12:12
(51) Он вообще с трудом догоняет.
Но и (51) - кусок шлака.
54 H A D G E H O G s
 
01.07.19
12:13
(46) Также. Но что ты потом с Соответствием делать будешь?
55 Вафель
 
01.07.19
12:39
(22) а чем таблица лучше соответствия?
Соотвествие - это всетаки хэшмэп. поинтереснее чем индекс для поиска
56 Garykom
 
гуру
01.07.19
12:39
(54) Пофиг что, главное что быстрее для задачи.
57 Garykom
 
гуру
01.07.19
12:41
(53) Для малых текстов с огромным количеством разных символов (не только латиница/кириллица но все что угодно из юникода) чье быстрее?
58 Вафель
 
01.07.19
12:42
(57)а где тесты? докузывающее что твое решение быстрее?
кстати СтрЧислоВхождений ккакой сложности операция?
59 H A D G E H O G s
 
01.07.19
12:43
(57) Как тебя вообще до программирования допускают?
У тебя 65535 раз полностью перебор текста будет
60 Garykom
 
гуру
01.07.19
12:43
(58) Можешь заняться тестами если хочешь.

И я согласен что у меня хрень зато короткая по коду и работающая и даже очень неплохо при некоторых узких входных данных/условиях.
61 Garykom
 
гуру
01.07.19
12:43
(59) Я в курсе.
62 H A D G E H O G s
 
01.07.19
12:44
(55) О каком хэшмапе идет речь, если ключ поиска состоит из 1 символа?
63 H A D G E H O G s
 
01.07.19
12:45
Я херею
64 Вафель
 
01.07.19
12:45
(60) В гугл тебя не возьмут
65 Garykom
 
гуру
01.07.19
12:46
(63) Если частота символов не более 65536 в тексте то строка наверно самое быстрое.
66 Вафель
 
01.07.19
12:46
(62) а что хэш от 1 символа нельзя посчитать?
67 H A D G E H O G s
 
01.07.19
12:46
(66) Но зачем?
68 H A D G E H O G s
 
01.07.19
12:47
Хэшмап хорош для длинных ключей
69 Garykom
 
гуру
01.07.19
12:47
(64) И не стремлюсь туда особо, у меня решение для параконкурса но для ТС пойдет.
70 Вафель
 
01.07.19
12:47
(67) ну так хэш мэп - это константное время поиска, а интекс - логарифмическое
71 Вафель
 
01.07.19
12:48
для коротких вообще можно свой хэш мэп организаовать
72 Garykom
 
гуру
01.07.19
12:48
(65)+ Хотя кто мешает завести еще одну строку, когда переполнена предыдущая по символу
73 Cyberhawk
 
01.07.19
12:48
(71) "свой хэш мэп организаовать" // Ну так соответствие же вроде это оно и есть?
74 Вафель
 
01.07.19
12:48
Хэш[КодСимвола(Символа)]++
75 H A D G E H O G s
 
01.07.19
12:49
(70) У тебя таблица будет максимум из 65535 строк . Тут и логарифм нормален. А для хэшмапа еще и хэш строить.
76 Вафель
 
01.07.19
12:49
(73) чтобы исключить операцию вычисления хэша
77 H A D G E H O G s
 
01.07.19
12:50
(76) ты хотел сказать - "переложить ее на платформу"
78 H A D G E H O G s
 
01.07.19
12:51
Алгоритмы Хаффмана они собрались строить, ага
79 Вафель
 
01.07.19
12:51
(74) Хэш - это массив
80 Garykom
 
гуру
01.07.19
12:51
(75) +1. Символ(0) не забыл?
81 Garykom
 
гуру
01.07.19
12:52
(77) (78) Обрати внимание что у тебя начинается "старческое брюзжание" ))
82 H A D G E H O G s
 
01.07.19
12:53
(81) Давно пора
83 Cyberhawk
 
01.07.19
12:55
(76) А получение элемента массива по индексу разве не тот же хэш?
84 H A D G E H O G s
 
01.07.19
13:12
(79) в 1С 8 нет классических массивов как в 7.7 и обычных яп
85 Garykom
 
гуру
01.07.19
13:16
(84) Эээ я думал там массив указателей по сути.
86 АгентБезопасной Нацио
 
01.07.19
13:34
(43) именно связный, не массив указателей?
87 H A D G E H O G s
 
01.07.19
13:36
(86) Судя по тому, что Удалить() в любом месте 1 млн массива массива отрабатывается с одинаковой скоростью - то - связный
88 Garykom
 
гуру
01.07.19
13:47
(87) Уверено что удаляет а не помечает элемент как удаленный?
Или что при каждом удаление не происходит копирование массива в новый со всеми ссылками?
89 АгентБезопасной Нацио
 
01.07.19
13:52
(87) в клюшках вроде был массив указателей. Или массив Char23...
90 H A D G E H O G s
 
01.07.19
13:52
(88) Слово предоставляется молчаливому бобу.
91 АгентБезопасной Нацио
 
01.07.19
13:53
(88) ну уж до додуматься такого, как "копирование  в новый" - это надо под грибами думать...
92 H A D G E H O G s
 
01.07.19
13:55
Гарри, а ты представляешь, как работает классический массив, как он лежит в памяти, как к нему прикрутить пометку на удаление и, самое главное, как потом сделать обращение по индексу?
93 H A D G E H O G s
 
01.07.19
13:56
Есть же понимание, что для удаление через копирование понадобиться 2x памяти в короткий момент?
94 Garykom
 
гуру
01.07.19
14:03
(92) А я что написал в (88) ?
Представляю и причем кучей разных способов с разными плюсами и минусами их.
95 Garykom
 
гуру
01.07.19
14:04
(93) А думаем почему 1С память жрет как не в себя?
96 H A D G E H O G s
 
01.07.19
14:09
(94) Массив в классическом ЯП - это кусок памяти с ячейками одинакового размера. Зная размер и номер ячейки - можно максимально быстро обратится к элементу массива. Вводя пометку на удаление, мы уже лишаемся этого.
97 Garykom
 
гуру
01.07.19
14:10
(96) Кто мешает скопировать часть массива (кусок памяти) до удаляемого и часть после удаляемого элемента в новый кусок памяти - массив
98 Garykom
 
гуру
01.07.19
14:11
(97)+ В Golang это слайсы по сути
99 АгентБезопасной Нацио
 
01.07.19
14:12
(97)  с помощью двух спиц и катушек из под ниток из булки хлеба...©
100 Garykom
 
гуру
01.07.19
14:13
(99) Получается язык Go за программинг на котором платят уже хорошие деньги
101 H A D G E H O G s
 
01.07.19
14:15
(97) 2-х кратный рост потребления памяти массивом.
102 МихаилМ
 
01.07.19
14:18
такой алгоритм работает в 20 раз быстрее
чем (22)

на анализе текста первого тома "война и мир"


ТекДлинаФайла = СтрДлина(ТекстСтрока);
Пока ТекДлинаФайла > 10 Цикл
    ТекСимвол = Лев(ТекстСтрока,1);
    
    ТекстСтрока = СтрЗаменить(ТекстСтрока,ТекСимвол,"");
    КонДлинаФайла = СтрДлина(ТекстСтрока);
    КолвоСимволов =  КонДлинаФайла-ТекДлинаФайла;
    //Сообщить("/"+ТекСимвол+"/   "+КолвоСимволов);
    ТекДлинаФайла = КонДлинаФайла;
    
КонецЦикла;
103 АгентБезопасной Нацио
 
01.07.19
14:20
(101) ну в общем, битва "массив супротив ИТЗ" есть битва неиндексированного  массива против индексированного.
но причин "сдохнуть" варианту с массивом я не вижу. тормоза вижу, а вот смерти нет... в неиндексированном врем линейное, в индексированном  логарифмическоен
104 АгентБезопасной Нацио
 
01.07.19
14:22
(102) кстати. время сильно будет зависеть от расположения символов в файле.
105 Garykom
 
гуру
01.07.19
14:24
(102) Извращенец не хуже чем у меня в (51) с СтрЧислоВхождений
106 Garykom
 
гуру
01.07.19
14:25
Так кому не влом, может соберем перечисленные извраты и проверим кто тормознее? Кому медаль самого паралгоритма?
107 Garykom
 
гуру
01.07.19
14:33
(102) Интересно можно как то еще сортировку засунуть результата?
В смысле сразу сортировка вставками.
108 Garykom
 
гуру
01.07.19
14:36
Но да понимать что можно один раз пройтись большой текст и получая очередной символ куда то его складывать суммируя.

А можно перебирать символы или из всего алфавита и считать сколько конкретного символа в тексте.

А можно соединить как (102) и перебирать символы из большого текста и сразу считать с удалением этого символа из него, автоматом большой текст для перебора сокращается.

Итого три сильно разные варианта алгоритма.
109 Garykom
 
гуру
01.07.19
14:39
Написать что ли ТС, интересно как отреагирует на (102), мозги свернутся в трубочку или нет.
110 H A D G E H O G s
 
01.07.19
14:53
(106) Метод Михаила дает раз в 20 быстрее моего, признаю. За счет быстрой свертки исходного текста.
111 Garykom
 
гуру
01.07.19
14:55
(110) И он работает по сути на копировании кусков памяти.
Как иначе можно быстро заменять в строках символы?
112 Garykom
 
гуру
01.07.19
14:57
(111)+ Это я к чему, он работает в 20 быстрее а жрет двойной объем памяти на "Войну и Мир" в начале, затем требуемый объем падает по мере обработки.
113 H A D G E H O G s
 
01.07.19
14:58
(111) Да, скорее всего так. Там около 1 мб данных.
114 Arbuz
 
01.07.19
15:15
а если ещё использовать для ТекСимвол не исходную строку а заранее заданную строку частотности букв русского языка, то будет ещё быстрее, для "Война и Мiр" конечно ;)
115 Garykom
 
гуру
01.07.19
15:17
(114) Думаю новые архиваторы так примерно и устроены, жрут кучу памяти для ускорения старых алгоритмов сжатия данных.
116 Garykom
 
гуру
01.07.19
15:18
(115)+ И места в самом архиваторе.
Т.е. частоты заранее предпрошиты, только по началу текста понять что перед нами, какой язык русский или нет и на основе этого брать заранее заданную последовальность символов.
117 Arbuz
 
01.07.19
15:28
(116) даже не столько какой язык, а какой тип данных - текст ascii, юникод, графика, звук, и т.д. на основании этого выбирается цепочка алгоритмов. это если упрощённо. потому как на основании частотности даже не символов, а последовательностей этих символов и их распределения по исходным данным (блокам) - нужно выбирать разные алгоритмы для каждого блока.
118 Arbuz
 
01.07.19
15:30
*последовательностей -> частотности последовательностей*
119 АгентБезопасной Нацио
 
01.07.19
15:55
(117) ну я то же хотел сказать.но потом посмотрел на тему, и увидел, что только тексь
120 Вафель
 
01.07.19
16:02
получается что основная броблема в том что нельзя побыстрому получить символ по индексу
121 Arbuz
 
01.07.19
16:14
основная проблема в том, что рисовать Хаффмана на 1С - это редкостный идиотизм. Дальше только 3д графику обсчитывать на ТЗ и регистрах.
122 АгентБезопасной Нацио
 
01.07.19
16:22
(121) кстати, прикольная идея - трассировку на регистрах
123 Arbuz
 
01.07.19
16:31
(122) да, да и тема на мисте "алгоритм масштабирования сплайна кубических безье на регистре сведений, помогите новичку"
124 Garykom
 
гуру
01.07.19
16:50
(123) Сколько новичок платит?
125 Arbuz
 
01.07.19
16:53
а за сколько готов взяться? :D
126 МихаилМ
 
01.07.19
17:51
(121)  (123) в 8.14  добавили решение СЛАУ . обе задачи можно свести к ним.
127 Garykom
 
гуру
01.07.19
17:55
(126) OpenCL поддержку хочу в 1С.
128 МихаилМ
 
01.07.19
18:03
129 Garykom
 
гуру
01.07.19
18:09
(128) Так не OpenGL а OpenCL это слегка иное.
130 NorthWind
 
01.07.19
20:00
(121) ну это же лаба, скорее всего, или курсовик. Я думаю, там даже не стоит задача реально сообщение в битах в файл записывать! Достаточно будет вывести на экран исходное сообщение и закодированное в виде строки из нулей и единиц.
131 NorthWind
 
01.07.19
20:02
так что вся эта мастурбация, которую тут устроили с производительностью, никакого сакрального смысла не имеет. Тем более что построение дерева и его обход с целью получения кодов реально более муторная штука.
132 rphosts
 
02.07.19
01:41
(35) (36) символов не много, но что-бы транслировать в более компактную запись (заархивировать) - требуется находить комбинации из нескольких символов и их частоту. В (26) кмк ищется частота вхождения фрагментов из 2 символов.
133 rphosts
 
02.07.19
01:41
*из 2 символов длиной
134 АгентБезопасной Нацио
 
02.07.19
08:15
(123) лучше классическая задача распознавания автомобильных номеров...
135 Провинциальный 1сник
 
02.07.19
08:57
(126) Ждем когда решение системы дифур методом Рунге-Кутта в платформу внедрят) А то мало ли. Выйдет "1С:Управление ядерным реактором", а быстродействия не хватит.
136 Garykom
 
гуру
02.07.19
15:00
(132) Комбинации из нескольких символов это сжатие по словарю, Хафман же вероятностное сжатие.

Более часто встречающиеся одиночные символы кодируются меньшим числом бит, чем реже встречающиеся.
Т.е. частые символы <8 (или 16) бит на символ, а редко >8 (или 16) бит на символ.
В результате сжатие.
137 JuixyJes
 
03.07.19
00:44
Ох етижкин пасатижкин
138 JuixyJes
 
03.07.19
00:44
Сколько вы тут понаписали, глазки расплываются..
139 palsergeich
 
03.07.19
00:45
(135) Ты зря сммешься, тут на форуме есть госпожа, у которой префиксы объектов начинаются с аэс
140 JuixyJes
 
03.07.19
00:48
Допустим, количество вхождений в текст каждого символа найдено, далее их же нужно кодом одарить для каждого, а это, как я понимаю должно быть что-то типа матрицы, не затолкаю же я в 1с дерево:D
141 JuixyJes
 
03.07.19
00:51
Чем чаще символ - тем меньше тот самый пресловутый код, это я тоже поняла, на хабре статеек начиталась. Но в плане реализации... Кашица, нужно поспать пойти, но завтра требуют от меня хоть какого то результата, потому сидим-с, думаем-с
142 JuixyJes
 
03.07.19
00:56
Понимаю, уже всем надоела. Да и по хорошему даже за такую задачку нужно платить
Но все же надеюсь на вашу помощь. В чужом коде разбираюсь хорошо, ведь за 11 лет в школе и 3 курса института научилась "списывать так чтоб не похоже было".
143 palsergeich
 
03.07.19
00:56
(141) Это где такие требования?
144 JuixyJes
 
03.07.19
00:57
(143) На обучении) Секретики - секретики.
145 palsergeich
 
03.07.19
00:58
(144) Пф. У меня своих секретиков достаточно, что бы в чужие лезть)
146 JuixyJes
 
03.07.19
00:58
(143) На работе работаю, вот, позвали работать с обучением бесплатным, а обучением оказалось самостоятельное решение задачек, просто задачки дают, а там как хочешь так и делай)
147 palsergeich
 
03.07.19
00:59
(146) ИМХО, послушай старого дядьку - не те задачи ты решаешь. В ближайшие 3 года тебе эта чистая алгоритмика понадобится может раза 2.
148 palsergeich
 
03.07.19
01:00
Нужно в проводочки и формочки - это среднесрочный фронт работ
149 JuixyJes
 
03.07.19
01:02
(145) Верю) Не подскажите? Как эту чучелу мяучелу научить мяукать? Как я понимаю мне нужно на основании вот этих символов и их частот  создать таблицу Хаффмана? На том же самом хабре написано что кодировать лучше через табличку, которая будет либо связным список либо массивом
151 JuixyJes
 
03.07.19
01:17
(148) Этим и так занимаюсь изо дня в день)
152 JuixyJes
 
03.07.19
01:18
(148) Что-то с форумом было? А то страница не грузилась
153 palsergeich
 
03.07.19
01:18
(149) Я если честно перевтыкал ERP за вечер и немного не в кондиции уже(
В час бекап снимается, около 20 минут оффлайна
154 JuixyJes
 
03.07.19
01:22
(153) Понятно) А вообще, задачка вроде бы не очень сложная, насколько я понимаю, так? Ведь осталось присвоить каждому символу свой код, а потом составить из этих кодов исходный текст в виде 0 и 1.
155 palsergeich
 
03.07.19
01:29
https://www.youtube.com/watch?v=9b2mCgSCjhw
Вот такую шню надо сделать)
156 craxx
 
03.07.19
04:51
(147) Норм задачки она решает. Мозги должны работать и искать пути решения. А не шпарить по шаблону
157 Провинциальный 1сник
 
03.07.19
08:04
(141) Задачка интересная и не так чтобы особо сложная. Уровень курсовика 2 курса программистской направленности. Но явно не уровня лабораторной работы, соответственно за пару вечеров это не сделать. И более помочь, чем гугл, форум вряд ли сумеет вам.
158 АгентБезопасной Нацио
 
03.07.19
08:14
+(156)  И чем больше путей решения будет рассмотрено, тем легче будет решать будущие нешаблонные проблемки.
(157) так а что там выше трех лаботаторок? тем более, первый этап - построение частотности - уже фактически дали. вторая лаба - сопоставить символ/частоту/код. ну и третья лаба - читать поток, перекодировать, писать в другой... Из стандартного студенчского тайминга: "лаба за вечер, курсовик за ночь". и с учетом  известной первой части - осталось работы на два вечера.
159 Провинциальный 1сник
 
03.07.19
08:20
(158) Ну я имею в виду не демонстрацию алгоритма, а более-менее отлаженный продукт, пусть и не оптимизированный. А если в оптимизацию влезть, то там можно вообще бесконечно дорабатывать.
160 АгентБезопасной Нацио
 
03.07.19
09:06
(159) ну так "хаффман на 1с" - не для продакшена пишется.
161 JuixyJes
 
05.07.19
23:16
Вечер добрый, форумчане! Допенькала я как мне приблизиться к решению задачки, и кодируется пусть не оптимально, но кодируется, пока что собственноручно вбивается код. Не подскажите, как в обратную сторону строку с тем же алфавитом раскодировать?
162 JuixyJes
 
05.07.19
23:17
Могу обработку скинуть, она на обычных формах сделана
163 АгентБезопасной Нацио
 
06.07.19
07:18
(162) декодеру код (а не алфавит) должен быть известен перед раскодированием.
К там уже просто - побитно читаешь вход и спускаешься по дереву до листа.