|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 11:37 pm
| Автор |
Съобщение |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
 Re: задачка ;)
Интересното е с for();
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Чет Юни 21, 2012 7:38 pm |
|
 |
|
Пушека
Ранг: Новодошъл
Регистриран на: Пон Апр 16, 2012 9:05 pm Мнения: 182
|
 Re: задачка ;)
Уфф , до 510 го докарвам  for (i=0; i<=255; i++) for(i=0; i < 255; i++);
|
| Пет Юни 22, 2012 10:06 am |
|
 |
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 11:53 pm Мнения: 4582 Местоположение: Brussels / Пловдив
|
 Re: задачка ;)
 |  |  |  | anrieff написа: Ако това е истинското решение на задачата с 511, както го е написал Пушека, да ме прощавате, ама задачата е мега некоректно зададена.
Искате ли една малко по-трудна?
Имате масив с цели числа (могат да са и големи, 32-битови примерно). В него масив, всички числа се срещат точно два пъти, с изключение на едно от тях, което го има само веднъж. Примерно { 3, 188, 55, 55, 3 }. Търси се кое е самотното. Не се разрешава сортиране. O(N) сложност се гони. |  |  |  |  |
Тази е елементарна - xor-ваш всички числа и си готов. Edit: Сори, не съм видял че вече е решено ...
_________________ Мразя да мразя ...
|
| Съб Юни 23, 2012 12:32 am |
|
 |
|
anrieff
Ранг: Новодошъл
Регистриран на: Нед Ное 16, 2008 1:16 pm Мнения: 179 Местоположение: София
|
 Re: задачка ;)
Ето ви я и един ъпгрейд на моята задача.
Същото е условието, само че този път самотните числа са две (=> и масива е с четен брой елементи).
Примерно: { 11, 35, 11, 28, 6, 7, 6, 35 } Търсените самотни числа са 7, 28 (може и в обратен ред)
_________________ 2 + 2 = 5, при много големи стойности на 2.
|
| Нед Юни 24, 2012 10:07 pm |
|
 |
|
Пушека
Ранг: Новодошъл
Регистриран на: Пон Апр 16, 2012 9:05 pm Мнения: 182
|
 Re: задачка ;)
XOR на първата половина от масива. Ако резулатът е 0 => и двете самотни числа са във втората половина. Нова итерация с половината от втората половина. Ако резултатът не е 0, XOR на другата половина, ако и там резултатът не е 0 => 2та резултата са търсените числа. Ако е = 0 => двете числа са в първата половина. Правим нова итерация с първата половина. И така до пълна победа 
|
| Пон Юни 25, 2012 8:15 am |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
 Re: задачка ;)
Тц. Удар в празно пространство. 
|
| Пон Юни 25, 2012 11:05 am |
|
 |
|
anrieff
Ранг: Новодошъл
Регистриран на: Нед Ное 16, 2008 1:16 pm Мнения: 179 Местоположение: София
|
 Re: задачка ;)
То дори на дадения пример не работи това решение 
_________________ 2 + 2 = 5, при много големи стойности на 2.
|
| Пон Юни 25, 2012 8:06 pm |
|
 |
|
Пушека
Ранг: Новодошъл
Регистриран на: Пон Апр 16, 2012 9:05 pm Мнения: 182
|
 Re: задачка ;)
Само проверявам дали вие ме проверявате. Че и в предния ми пост с for(... пак има недомислица, но май никой не забеляза.
|
| Пон Юни 25, 2012 8:56 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 31 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|