![]() |
|
|
![]()
|
|
| reider |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 18.11.2013 Репутация: нет Всего: нет |
Доброго времени суток.
Столкнулся с проблемой и не могу придумать как решить, подскажите если есть мысли на данную тему, буду очень признателен. Задача: На входе имееться файл размером Size бит.По данному файлу необходимо навести статистику длинной N бит с шагом в n бит. Т.е. полсчитывать какие есть в нём комбинации по N бит и сколько их. Когда длина комбинации мала ( скажем 24 бита) , то проблем нет. Я создаю массив: INT32 *Mass = new INT32[pow(2,24)]; и когда к примеру я нахожу комбинацию к примеру "101000101010100011111010", то я привожу ее к значению в десятичной системе 10660090 и по этому адресу в массиве Mass пишу что нашёл ещё одну такую комбинацию Mass[10660090]++. А как быть когда мне надо навести статистику в 128 бит? Заранее благодарен. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
1) Что такое в данном случае "статистика"? 2) Длиной в N бит - это строго N или не более чем N? 3) Что такое "шаг n" и к чему он прилеплен. 4) Что такое "сортировка подсчётом" - знаешь? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| reider |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 18.11.2013 Репутация: нет Всего: нет |
1) Что такое в данном случае "статистика"?
-Статистика это список соответсвия вида комбинации и цифрового значения указывающего сколько раз это комбинация встречалась. 2) Длиной в N бит - это строго N или не более чем N? -строго N 3) Что такое "шаг n" и к чему он прилеплен. -шаг n это то с каим шагом относительно предыдущей позиции считывать следующую комбинацию в N бит т.е. n =1; N = 2; Array =101110101001010100101010; 10 01 11 11 10 ....... n =2; N = 2; Array =101110101001010100101010; 10 11 10 10 10 01 ....... 4) Что такое "сортировка подсчётом" - знаешь? -нет. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Теперь всё понятно. Следовательно
ищи и читай. Это то, что тебе нужно. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| reider |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 18.11.2013 Репутация: нет Всего: нет |
Не мой случай.. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
reider, если ты будешь только читать, и не будешь при этом думать - хрен у тебя что получится.
Изволь посмотреть реализации метода. И убедись, что от твоего подхода, описанного выше, они отличаются одной лишь деталью - ты сразу резервировал массив (который к тому же был изрядно разреженным по окончании подсчёта), в то время как при сортировке обычно используется динамический массив (или коллекция) - на начальном этапе вообще без элементов, а по окончании содержащий только элементы, по индексу которых в наборе было хотя бы одно такое значение. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| reider |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 18.11.2013 Репутация: нет Всего: нет |
Круто. А как же мне при наведении статистики узнать был ли такой эелемент ранее?
Идти по списку??? Данный метод не подразумевает кодирование значения выборки до меньшего размера. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Что такое коллекция - знаете? Если значение элемента - ключ коллекции, то при попытке прибавить единичку к несуществующему элементу возникнет ошибка, что элементарно ловится, после чего выполняется добавление к коллекции нового элемента со значением 1.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| reider |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 18.11.2013 Репутация: нет Всего: нет |
Знаю.
А из-за чего возникает эта ошибка при обращение к несуществующему элементу? А точнее от куда становиться известно что он не существует? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Ууу... не, читать лекции по основам - это пусть кто другой...
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| reider |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 18.11.2013 Репутация: нет Всего: нет |
невозможно осуществить адресацию множества всех вариантов N битного значения в множестве с адресацией из меньшего числа разрядов.
То о чём вы говорите, это не ошибка обращения к памяти, т.к. для того чтобы считать что ключь ошибочный надо осуществить поиск данного ключа во всём множестве, и не важно на сколько он быстр , т.к. это в десятки раз мендленней прямой адресации. Возможно вы слишком высокомерно подошли к теме , и даже не стали в неё вникать. Подняв труды по ТВ стало ясно что данная задача не решаема без явного или не явного перебора. Если вы уж изволили отвечать то не надо заниматься подколами и ставить себя выше всего при этом даже не давая ясных ответов. Это сообщение отредактировал(а) reider - 23.5.2014, 09:21 |
|||
|
||||
| Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 4 Всего: 17 |
Вообще то это не подколка. Вы не уточнили язык реализации. Например, если вы используете java, то следует применить HashMap<String,Integer>. Тогда, фрагмент заносящий очередной битовый фрагмент в коллекцию будет выглядеть так:
Строка key содержит битовое представление текущего фрагмента, например "1000011001". Однако, если вы используете другой язык, то и процедура будет другой. Однако, поиск соответствующего фрагмента уже не ваше дело - java проводит его самостоятельно и очень эффективно! -------------------- Mirkes |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
В основном - только если есть желание использовать специфичные для языка более эффективные конструкции. А при использовании системных (скажем, Scripting.Dictionary) разница будет только в языко-специфичном синтаксисе. Добавлено через 1 минуту и 51 секунду
Если прёт это делать вручную - флаг в руки. Впрочем, если при этом хранить текущий массив данных в сортированном состоянии, то бинарный поиск выполнит требуемое достаточно эффективно... но зачем? ведь "всё украдено ещё до вас...". -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 4 Всего: 17 |
Именно это я и имел в виду -------------------- Mirkes |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |