|
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 82
|
|
Разбор программы "Архиватор"06.07.2013, 14:54. Показов 7731. Ответов 66
Метки нет (Все метки)
Всем доброго времени суток, ребят мне нужна помощь в программе, точнее прога есть, но не понимаю в ней(сижу в книгах разбираюсь, но получается долго).
Кто-нить помогите прокомментировать программу, так что бы было понятно(малость глуп)... Спасибо!
0
|
|
| 06.07.2013, 14:54 | |
|
Ответы с готовыми решениями:
66
Разбор программы Разбор программы Архиватор данных - возможна ли оптимизация программы? |
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
|
| 21.07.2013, 00:46 | |
|
В этом примере на C++ вовсю используется арифметика с плавающей точкой.
С точки зрения математика, наверное, код замечателен своими алгоритмами. С точки зрения низкоуровнего программиста код - тихий ужас, потому как плавающая точка применена там, где можно все считать в целых числах.
0
|
|
|
programmer
2391 / 524 / 69
Регистрация: 01.06.2011
Сообщений: 3,638
|
|
| 21.07.2013, 02:14 | |
|
Вероятность вхождения символа-целочисленное значение?
Таковы условия задачи. Если писать на асме сам алгоритм сжатия,то для расчета префиксных кодов по сути нужны только частоты встречаемости.Это уже целочисленные. Добавлено через 9 минут Притом,кто мешает использовать FPU,а дальше параллельно использовать АЛУ или подготовить данные пересылкой,что бы не было простоя во время работы FPU?
0
|
|
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
||
| 21.07.2013, 14:03 | ||
|
unsigned long данных_символов, всего_символов, вероятность ; ... вероятность = 1000 * данных_символов / всего_символов ; printf("вероятность = 0.%03i\n", вероятность) ;
0
|
||
|
programmer
2391 / 524 / 69
Регистрация: 01.06.2011
Сообщений: 3,638
|
|
| 21.07.2013, 23:08 | |
|
ЭЭммм,по ходуу с теореей вероятномти у вас проблемы.
Сумма вероятностей всех элем ентов = 1. Подскажите в какую сторону мне округлять
0
|
|
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
|
| 21.07.2013, 23:43 | |
|
Вероятность есть вещественное число не большее единицы. Но в программе для ее вычисления не требуется плавающая точка. Вероятность преспокойно считается в целых числах. Как - показано выше. Что тут непонятно ?
Синусы, косинусы, тангенсы, котангенсы тоже преспокойно считаются в целых числах. Иначе игрушки типа Doom/Quake при обсчете картинки вида из глаз тормозили бы по черному. В игрушках с обсчетом вида из глаз значения тригонометрических функций выгребаются из готовых таблиц, НО в виде целочисленных значений и именно в этом целочисленном виде используются.
0
|
|
|
programmer
2391 / 524 / 69
Регистрация: 01.06.2011
Сообщений: 3,638
|
|
| 22.07.2013, 05:45 | |
|
Вы так и не поняли до сих пор,что я подшучиваю?
Вот мой код.На асме легко решаеться взятием целой части и остатка. Что вы сказали лучше забудьте. Единственная проблема у С++ это работы с флагами.А так вполне для системного программирования Си подходит,но доверия к компилятору не питаю.Лично писал дрова на Си. int size_fr[256]={0};//частота встречаемости int count=0; //сумма частот встречаемости symbols[i].prob = (float)size_fr[i] / count; Добавлено через 16 минут Я всего то хотел сказать,что код на асме через структуры будет более читабельней,а не возиться с адресами.По мне со структурами с деревьями проще работать.Начал на FASMе писать но так за ночь и не успел,чтобы показать.На сортировке остановился. Впрочем парень обявил константы и к ним обращался. p.s.Забудьтьте.у меня сейчас не лучшее время для разговоров. Сегодня по бабушке было 40 дней,а уже придеться переезжать в отчий дом.Брата здесь оставлю. Добавлено через 24 минуты Впрочем,зачем меня слушать.Я ЛОХ в программировании.Поэтому забудем спор,и никпгда не используйте структур для сложных алгоритмов. Добавлено через 8 минут Тот код что я выкинул написал за 4 час,поэтому не придирайтесь.
0
|
|
|
programmer
2391 / 524 / 69
Регистрация: 01.06.2011
Сообщений: 3,638
|
||
| 22.07.2013, 06:51 | ||
|
на этом форуме я давно зарегистрирован ,мой последний пост http://forum.compression.ru/vi... 47a6e76a45
Советую начать с Ватолин Д., Ратушняк А., Смирнов М., Юкин В. Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео Сейчас изчаю PPMd,сделал распечатку. Добавлено через 45 минут
1
|
||
|
Ушел с форума
16374 / 7686 / 1080
Регистрация: 11.11.2010
Сообщений: 13,763
|
|
| 22.07.2013, 07:02 | |
|
0
|
|
|
programmer
2391 / 524 / 69
Регистрация: 01.06.2011
Сообщений: 3,638
|
|
| 22.07.2013, 07:33 | |
|
Извини Mikl___,но это по памяти вспомнилось.Где-то наткнулся,почитал,запомнил.
Но дело в том,что трансцедентные функции без таблиц FPU так быстро не смог бы обработать. Более сложные(по скорости)из них это корни и логорифмы.Сейчас потихому перехожу на SSE4.Но там не трансцедентных. P.s.Впрочем,ты ведь знаешь почему.На CUDA еще успееться,а мне для проверки результата и скорости.Почитайте про приз Хаттера. Добавлено через 12 минут Впрочем взять любой даташит по FPU и почитать,вроде там натыкался.Но у Зубкова в книге эти вопросы точно не разбираються. P.s.Всем остальным совет,изучайте ассемблер по книгам.На хорушую книгу и денег не жалко.
0
|
|
|
Ушел с форума
16374 / 7686 / 1080
Регистрация: 11.11.2010
Сообщений: 13,763
|
|||||||||||||||||||||||||||
| 22.07.2013, 09:12 | |||||||||||||||||||||||||||
0
|
|||||||||||||||||||||||||||
|
programmer
2391 / 524 / 69
Регистрация: 01.06.2011
Сообщений: 3,638
|
|
| 22.07.2013, 09:18 | |
|
Эммм,я так и не понял что Вы хотели сказать.
вычисление логорифма занимает 128 тактиков вот ссылочка на возведение в дробну степень(оно же корень,то что мне и надо) http://delphiworld.narod.ru/base/sqr_number.html Я ведь пытался обьяснить,что на CUDA хочу эти процессы расспаралелить.Возможно не говорил,это у меня в уме.
0
|
|
|
Ушел с форума
16374 / 7686 / 1080
Регистрация: 11.11.2010
Сообщений: 13,763
|
|
| 22.07.2013, 09:27 | |
|
Thread,
я пытался поделится целочисленными способами получения квадратного корня (и по аналогии корней других степеней), а определение целочисленного значения lg(X) можно сделать без всяких fyl2x простым целочисленным умножением на магическую целочисленную константу 4D10h = lg(2) * 65536
0
|
|
|
programmer
2391 / 524 / 69
Регистрация: 01.06.2011
Сообщений: 3,638
|
||
| 22.07.2013, 14:13 | ||
|
Ой,ой.
Я понял решение,но я ведь горю не о квадратах.Это степенные функции c вещенственным показателем. Кстати ,я уже модель придумал.Возможно перейду на PPMd Добавлено через 8 минут Честно говоря,я всю таблицу Брадиса перебрал в поисках альтернативы Шеннону.
0
|
||
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
|||
| 22.07.2013, 18:14 | |||
|
Просто, в ассемблере, как нигде, важен не столько сам алгоритм, сколько его лаконичная реализация в кодах процессора. Если Вы хотели показать всем мастер-класс сжатия данных, то на каком-нибудь другом форуме можно было бы порассуждать об оптимальном алгоритме, но на этом лучше показать как Вы сумели этот оптимальный алгоритм реализовать. Примеры на C++ здесь не впечатлят. Добавлено через 10 минут
0
|
|||
|
programmer
2391 / 524 / 69
Регистрация: 01.06.2011
Сообщений: 3,638
|
|
| 23.07.2013, 01:06 | |
|
Про FPU так пока и не нашел.Вот немного о ALU.Думаю этого достаточно,чтобы мне поверить.
Устройство FPU поищите сами.Мне пока не до этого. Блок целочисленных операций Первый и основной блок процессора. Хотя, правильнее сказать не блок, а блоки, так как их в процессорах несколько. Грубо говоря, на заре развития, кроме этого блока в процессоре практически ничего и не было. Основная задача ALU, начиная с самых первых моделей и заканчивая современными монстрами, не изменилась. Он все также работает с простыми (целыми) числами, производя операции сложения, вычитания, сравнения, преобразования чисел; выполняет простейшие логические операции, а также битовые сдвиги. Заметьте, что на ALU не возложены задачи умножения и деления, а все потому, что данные типы вычислений встречаются довольно редко, и как следствие для них выделили собственный блок – “целочисленный умножитель”, благодаря которому удалось поднять производительность ALU, избавив его от нестандартных задач. Операции деления также возложены на умножитель, и выполняются с помощью специальной таблицы констант. Вот такой, весьма простой блок, производительность которого напрямую влияет на производительность процессора во многих задачах, например офисных приложениях, многочисленных специфических программах для расчетов и.т.д. http://testlabs.kz/processors/... i-fpu.html
0
|
|
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
||
| 23.07.2013, 17:47 | ||
|
Умножитель - это умножитель. Если в него вставить готовую таблицу произведений байт на байт (всего 256*256 значений, а это приемлемо), то для умножения 16/32-разрядных чисел останется делать только сдвиги и сложения, а это перепутанные провода и простые логические вентили. Это быстро. Но умножение - не есть вычисление синуса. С синусом, как бы, совсем другое дело. Там так просто от необходимости вычисления итерациями не отделаешся.
0
|
||
|
programmer
2391 / 524 / 69
Регистрация: 01.06.2011
Сообщений: 3,638
|
|
| 23.07.2013, 17:57 | |
|
Таблица синусов до 90 градусов 90 значения типа float.Выше 90 в обратную сторону идут.Дальше теже значения только отрицательные.
Косинус это смещение по фазе на четверть от синуса.С остальным хз. Примерно так наверно.
0
|
|
|
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
|
|
| 24.07.2013, 09:22 | |
|
deleted
0
|
|
|
Ушел с форума
16374 / 7686 / 1080
Регистрация: 11.11.2010
Сообщений: 13,763
|
|
| 24.07.2013, 09:46 | |
|
0
|
|
| 24.07.2013, 09:46 | |
|
После попытки скачать архиватор, не удаляются программы Как из программы Java вызвать архиватор и заархивировать файл ? разбор программы Разбор программы 2 Разбор программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю
Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы
Кратко. . .
|
|
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|