![]() |
|
Алгоритм Хаффмана для текста решение | ☑ | ||
---|---|---|---|---|
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
|
Не проще?
|
|||
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) Ты фишки наверно не понял?
|
|||
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) декодеру код (а не алфавит) должен быть известен перед раскодированием.
К там уже просто - побитно читаешь вход и спускаешься по дереву до листа. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |