![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
||||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
халявщик...
ладно, в общем автору темы вон сколько вариантов - и все как на подбор шустрые Это сообщение отредактировал(а) Alek86 - 12.5.2008, 16:03 |
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: нет Всего: 191 |
Всем спасибо!
|
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
О кстати:
Это сообщение отредактировал(а) SABROG - 12.5.2008, 18:57 |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Ну вообщем кажется оттуда уже всё перебрали -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
Метод с массивом я бы назвал отмазкой, т.к. сначала человек сам вычисляет количество бит для каждого байта в диапозоне 0-255, после чего тупо выводит их с помощью программы, если бы не дополнительное условие о том, что надо для строк переменной длинны вести подсчет
Кстати, а нужен ли индекс i ? Может применить адресную арифметику и увеличивать сам указатель ? Кроме того, если мы берем строку, то нулевой индекс нам не нужен вообще, т.к. 0 это конец строки. А еще диапозон значений можно сократить до рамок 32-241. Это сообщение отредактировал(а) SABROG - 18.6.2008, 09:11 |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
ничего себе отмазка! ты на олимпиадах бывал по программированию? там такие "отмазки" больше всего баллов и получают
тупо или не тупо - второй вопрос главное быстро не хочешь сам свитать колво бит, напиши метапрограмму, кто мешает? |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
Ну вот с применением метапрограммирования получилась такая штука. Выглядит коряво и не оптимизированно, с удовольствием посмотрю на другие варианты.
Фишка с рекурсией шаблона была стырена отсюда http://www.rsdn.ru/?summary/560.xml, т.ч. это не моя задумка. Препроцессор вычисляет количество нулевых битов в каждом из 256 байтов. |
|||
|
||||
| Mayk |
|
||||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Так делает только совсем безмозглый человек. Подобные мехаические операции лучше поручить делать питону/руби/кому угодно, которые находят ответ как угодно.
делаем кодогенератор
и получаем готовый код.
Это сообщение отредактировал(а) Mayk - 18.6.2008, 13:25 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||||
|
|||||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
только я не в курсе, сможет компилятор это во время компиляции посчитать или будет это делать при запуске программы.. Добавлено через 5 минут и 22 секунды Mayk, а как это, или что-то подобное, можно прикрутить к своей системе сборки? так что-бы если файл изменился, оно код заново нагенерило-бы... |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
||||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
Lazin, нехотит на этапе компиляции заполнять. Смотрел отладчиком, заполняет bss секцию во время выполнения. Оптимизация -O2
|
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
тогда я ошипся, чтож ) но все равно, даже если заполяняет по время выполнения, сложность (или как оно зовется) алгоритма от этого не меняется |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
Мы же вроде сейчас о скорости говорим. А сложность уже достаточно высокая
Сейчас задача стоит таким образом: - компилятор мы заставили вычислять количество бит - программу заставили использовать эти данные при подсчете количество бит в строке, что увеличило скорость (или нет ?) - остался вопрос об автозаполнении массива на этапе компиляции, чтобы не приходилось ручками вбивать 0, 1, 2 и т.д. |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
сложность (?) алгоритма (то есть "О большое для количества элементов") - это и есть главный критерий скорости а то, что ты хочешь сделать - лишние брыкания
скорее всего на C++ это невозможно |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |