Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что нужно подтянуть? 
:(
    Опции темы
fish9370
Дата 20.6.2011, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



Цитата(500mhz @  20.6.2011,  23:52 Найти цитируемый пост)
4 gb в худшем варианте )))


всего лишь?

я использую перемешанную таблицу и сведу размер результирующего массива к размеру входного.. для любых чисел..

а тебе слабо?  smile 


--------------------
undefined
PM MAIL WWW ICQ   Вверх
500mhz
Дата 20.6.2011, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



да запросто ) как два байта переслать


--------------------

PM MAIL ICQ   Вверх
fish9370
Дата 21.6.2011, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



Цитата(500mhz @  20.6.2011,  23:59 Найти цитируемый пост)
как два байта переслать


докажешь?  smile 


--------------------
undefined
PM MAIL WWW ICQ   Вверх
500mhz
Дата 21.6.2011, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



на пиво?  smile 


--------------------

PM MAIL ICQ   Вверх
fish9370
Дата 21.6.2011, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



Цитата(500mhz @  21.6.2011,  00:04 Найти цитируемый пост)
на пиво?   


если ты из Москвы, то давай на пиво..  smile 


--------------------
undefined
PM MAIL WWW ICQ   Вверх
500mhz
Дата 21.6.2011, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



не я в киеве )


--------------------

PM MAIL ICQ   Вверх
fish9370
Дата 21.6.2011, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



вобщем если есть интерес и время, то сделай.. вообще было бы прикольно посмотреть это на асме..  smile 


--------------------
undefined
PM MAIL WWW ICQ   Вверх
volatile
Дата 21.6.2011, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 16
Всего: 85



Горячие финские парни, не спорьте.

Мой вариант.
В СТЛ есть мап. Он как будто специально сделан для такой задачи.
Код

std::map <int,int> mp;
for (int i=0; i<size; ++i) 
   mp [arr[i] ] ++;

Вот собственно и всё! Осталось только вывести количество каждого значения.
Код

for (std::map <int,int>::iterator i = mp.begin (); i!=mp.end (); ++i)
   cout << i->first << " - " << i->second << std::endl;

http://liveworkspace.org/code/2c2bee1993a4...69b3cb5bc84161c

Это сообщение отредактировал(а) volatile - 21.6.2011, 01:16
PM MAIL   Вверх
fish9370
Дата 21.6.2011, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



Цитата(volatile @  21.6.2011,  01:12 Найти цитируемый пост)
В СТЛ есть мап. Он как будто специально сделан для такой задачи


да.. он для такой задачи.. вообще я этому научился еще на PHP, там это развито еще круче, я специально не стал этого приводить.. 



--------------------
undefined
PM MAIL WWW ICQ   Вверх
500mhz
Дата 21.6.2011, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



volatile
да мы уже не о том спорим )))
если максимальный элемент массива dword 0xffffffff то памяти может не хватить 


--------------------

PM MAIL ICQ   Вверх
asmdzen
Дата 21.6.2011, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



500mhz, вообще то если просто перевести код fish9370 на асм то получится что он просто будет жрать много памяти особенно при отрицательных значениях в массиве.

Цитата(500mhz @  20.6.2011,  23:27 Найти цитируемый пост)

Код

inc dword [esi+ebp]



разве не правильней будет
Код

inc dword [ebp+esi] ; где база именно ebp ))


Код

int main()
{
       const int size = 10;
        int arr[size] = {10, 1, 1, 3, 1, 3, 1, 8, 9, 2};
        int count = 0;
        for (int i = 0; i < size; ++i)
        {
                for(int j = i+1; j < size; ++j)
                {
                        if (arr[i] == arr[j])
                        {
                            count++; // считываем количество повторений
                            break;
                        }
                }
        }
        cout << size - count <<endl; // афишируем количество различных элементов
        return 0;
}


вроде это то что нужно автору

Это сообщение отредактировал(а) asmdzen - 21.6.2011, 09:51
PM MAIL   Вверх
Teleport
Дата 21.6.2011, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



asmdzen, а что по-твоему является различными элементами массива?
На мою логику так: 10, 8, 9, 2. 
Т. е. всего 4 различных элемента. А твоя программа выводит 6.
И второй цикл ты начинаешь с i + 1, а я все же думаю, что нужно сравнивать со всеми элементами массива, кроме самого себя. Например, так - дошел ты до последней единички в массиве и сравниваешь ее с 8, 9, 2. И получается, что она различный элемент? Не думаю.

Это сообщение отредактировал(а) Teleport - 21.6.2011, 11:54


--------------------
user posted image
user posted image 
PM MAIL   Вверх
asmdzen
Дата 21.6.2011, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



Teleport, различные элементы я понимаю 10, 8, 9, 3, 2, 1, то есть все элементы без повторов
ведь не сказано же "не повторяющихся" элементов. может я неправильно понял условие. покажите как будет правильно по вашему.
PM MAIL   Вверх
Teleport
Дата 21.6.2011, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



В условии сказано 
Цитата

Найти количество различных элементов в массиве

По-моей логике элементы различные - это 10, 8, 9, 2.  А элементы 3 и 1 повторяются и не являются различными.


--------------------
user posted image
user posted image 
PM MAIL   Вверх
asmdzen
Дата 21.6.2011, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



Teleport, т.е. различных != уникальных?
по моей логике 10, 8, 9, 3, 2, 1 все различные между собой, остальные уже повторы ))
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1119 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.