powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вес Хэмминга: реализация и некоторые вопросы.
9 сообщений из 59, страница 3 из 3
Вес Хэмминга: реализация и некоторые вопросы.
    #38991253
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для mingw переписал popcount
использует процессорную команду popcnt

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
uint64_t popcount2(uint64_t x)
{
    uint32_t result;

    union {
        uint64_t a;
        uint32_t b[2];
    } a;
    a.a = x;

    asm ("popcnt  %%ebx, %%eax;"
         "popcnt  %%edx, %%ecx;"
         "addl %%ecx, %%eax;"
         :"=a" (result)
         :"b"(a.b[0]), "d" (a.b[1])
         :"ecx");

    return result;
}


на acmp.ru процессор неправильный, команду popcnt не понимает
...
Рейтинг: 0 / 0
Вес Хэмминга: реализация и некоторые вопросы.
    #38991312
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Угу, у меня также. Я вчера пробовал использовать эту функцию на том ресурсе.
Несмотря на то, что формально мы сдали задачу, я не уверен что оно правильное. Мы не можем предсказать сколько времени будет выполняться данный цикл

Код: plaintext
1.
2.
3.
4.
5.
6.
                int i = 0;
		while (res != a[i]){
			k -= 1;
			res = res + popcount(res);
			if (res > a[i]) i += 1;
		}	
...
Рейтинг: 0 / 0
Вес Хэмминга: реализация и некоторые вопросы.
    #38991349
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryМы не можем предсказать сколько времени будет выполняться данный цикл
Можно взять генератор случайных чисел и запустить поиск максимума.

Думаю максимум будет примерно STEP + 1-3%.
...
Рейтинг: 0 / 0
Вес Хэмминга: реализация и некоторые вопросы.
    #38991489
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
k -= 1;


Прикольнулся?
...
Рейтинг: 0 / 0
Вес Хэмминга: реализация и некоторые вопросы.
    #38992168
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Код: plaintext
1.
k -= 1;


Прикольнулся?

Почему ?) Такая запись кажется мне более красивой, нежели
Код: plaintext
1.
k--;



Но если бы я знал наверняка, что второй вариант быстрее, то использовал бы только его.
...
Рейтинг: 0 / 0
Вес Хэмминга: реализация и некоторые вопросы.
    #38992169
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно. Задачу мы сдали довольно легко (путь даже не так как я хотел). И сложность у этой задачи самая большая на том ресурсе. Помню мы как-то решали эту задачу . Тут мы её обсуждали .Сложность у неё в полтора раза меньше (судя по процентам на том сайте), но решение намного сложнее.
...
Рейтинг: 0 / 0
Вес Хэмминга: реализация и некоторые вопросы.
    #38992335
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury, на самом деле я тоже не знаю во что конкретный компиллятор собирает
выражение

Код: plaintext
1.
k-=1;



Но оно очень похоже на присвоение. Сторонний дев который не знает С++ при реверсе
кода может решить что это хитрое присвоение минус 1. Или хитрая проверка.

Недавно на Groovy/DSL семинарах мы рассмотрели такое выражение.
Код: plaintext
1.
2.
3.
while( x --> 0){
   // do smth
}



Разработчики, незнающие С++/Java/Groovy делали для себя вывод что это
цикл "пока икс стремится к нулю". Вобщем эдакий себе софизм.
...
Рейтинг: 0 / 0
Вес Хэмминга: реализация и некоторые вопросы.
    #38993196
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В нашем городе нет семинаров по Си и программированию вообще (к сожалению), но рассмотренный пример для любого программиста (даже для меня) разве не тривиальный ?
PS
Марк, взял бы и выложил задачи что вы там разбирали в отдельном топике ;)
...
Рейтинг: 0 / 0
Вес Хэмминга: реализация и некоторые вопросы.
    #38993240
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это было не в тему С++.
...
Рейтинг: 0 / 0
9 сообщений из 59, страница 3 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вес Хэмминга: реализация и некоторые вопросы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]