Побитови задачи.
Здравейте,
Искам да помоля някой, ако знае някакви по-лесни начини за решаване на побитовите задачи или пък се сеща за някое видео от лекциите, в които се решават по-просто, да сподели.Мерси!
Здравейте,
Искам да помоля някой, ако знае някакви по-лесни начини за решаване на побитовите задачи или пък се сеща за някое видео от лекциите, в които се решават по-просто, да сподели.Мерси!
Здравей,
По - лесния начин е със "стрингосване", или по - точно да се използва StringBuilder. Тъй като String е по - бавен. Всеки път когато инициализираш някой String конструктора му вика StringBuilder. Може да погледнеш някоя от подготовките за изпити, там някой от лекторите показват и решение със стрингосване. Ако си в бейсик нивото може да хванеш някой от тези които са по - напред да ти покажат кое как работи.
Надявам се да съм те насочил.
Успех
Бих искал да използвам темата, за да задам следния въпрос:
Ще има ли задачи с битови операции на изпита?
На презентацията от 11.03.2016, с която се откри втората част на началния курс Programing Basics Януари 2016, има слайд за изпитните задачи:
5 practical problems for 6 hours
- Simple calculations + simple logic
- Loops + simple logic
- Drawing figures at the console (loops)
- Arrays – processing sequential data
- Matrices – processing table data
Правилно ли правя извода, че няма да има задачи с битови операции? (Или поне не във формата, която присъстваха в предишните инстанции на изпита...)
До колкото съм запознат ... няма да има. Битовете за изместени малко по - напред, но няма да минете без тях. Може да ги нямате на изпит, но със сигурност ще минете през темата :)
Решават се по-лесно с масиви. Едномерни или двумерни според условието на задачата. Честно казано не съм убеден, че винаги е по-лесно, но поне аз така ги решавах, когато се упражнявах за изпита след бейсик нивото. Така реших и 5-а задача на изпита.
Този линк лично на мен ми е бил полезен. Надявам се и на вас да ви е от полза http://stackoverflow.com/questions/47981/how-do-you-set-clear-and-toggle-a-single-bit-in-c-c
Само да добавя, че за мен, такова чудо като побитови задачи няма. Това са най-обикновенни задачи които по природа/най-ефикасен начин/лесно/бързо се решават с побитови операции. Просто човек трябва да ги разбере за да може да знае кога да ги прилага и как. Като за начало бих препоръчал много добре да се научат и най-вече разберат побитовите операции |, & и т.н., като се учат върху най-прости числа или по-точно приложението им върху 1 бит т.е. 1 или 0. След което може да почнем да изпробваме върху по големи числа - с повече битове. Иначе материали има в изобилие но без основите са безмислени.
П.С.: Ако има някоя задача която се чудиш как се разбира, че може да се реши чрез побитови операции, или как се решава, постни я тук и ще се опитаме да ти обясним някои принципи и методи.
Колегата е прав. Решаваш няколко задачи. Разбираш за какво иде реч. Правиш си библиотека от основните операции и ползвайки я решаваш всички побитови задачи за отрицателно време.
Успех.
Подкрепям мнението, че задачите с битове са най-обикновени задачи. При това самите битови операции са много малка и нерядко незначителна част от решението (два-три тривиални реда). Основната трудност е съставянето на алгоритъм, оттам нататък дали ще се ползват масиви от символи, матрици или битови операции не е кой знае колко съществено.
Скоро обсъждахме битовите операции с менторската ми група. Нахвърлих тези записки, които обобщават най-важните неща, може да са полезни. Има разбира се и много онлайн източници с различни "хакове".
Здравей :) Един колега е направил нещо като cheet sheets за побитови операции. Нямам представа дали би ти помогнало, но за всеки случай ще ти дам линк
https://github.com/BogomilDimitrov/CSharpBasicsOct2014/blob/master/Online_ExamPreparation/BitWiseOperations-Cheatsheet.txt
Искрено се надявам да имаш полза от него, ако ли не се извинявам, че поста ми не е на място.
Благодаря на колегата за отрицателния глас... ти се опитваш да помогнеш , а после получаваш минуси... супер.
Поне този , който ми даде thumbs down нека ми каже поне защо ? Поста ми ли не беше по темата, не е това което се иска ли ? ,
не съм сложил нещо свързано с побитовите операции или поне някакъв feedback , за да знам какво съм объркал толкова.
Много е лесно просто да цъкнеш минус.
Примери се, че има всякакви хора ....
Оправил съм ти минусчето .... поне да си на 0 :D
Успех
Благодаря ти колега :) Не исках да измествам темата , но просто не разбирам и не намирах логика и затова исках да попитам какво се случва ?
Не ми пука колко точки ще имам или за самите точки. Просто не разбирам защо когато отделиш от времето си и се опиташ да помогнеш , получаваш "-" и за това реших да попитам. В никакъв случай не искам да измествам темата
и благодаря ти за отговора. :) Поздрави и успех
n = n & (~(1 << pos)) | (mask << pos); //заменяне на бит с неизвестна маска
n = n ^ (1 << pos); // обръща бит-а на дадена позиция (0 -> 1 или 1 -> 0)
n = n & ~(1 << pos); // прави бит-а 0-ла
n = n | (1 << pos); // прави бит-а 1-ца
Не е лошо, ама мен ако питаш , по-добре е да разбереш какво се случва на всяка стъпка, отколкото да си хардкоднеш такива неща в главата :)
Мисля че намерих нещо подходящо. Стъпка по стъка колегата описва как се случват нещата. Надявам се да ти помогне
https://telerikacademy.com/Forum/Questions/6685/%D0%9F%D0%BE%D0%B1%D0%B8%D1%82%D0%BE%D0%B2%D0%B8-%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8
добре е в началото , а и след това да си ги разпишеш на хартия и ще ти се разяснят в пъти повече. ;)
Колега, r3v3nan7, има ги всякакви не им се ядосвай. На мен също така ми дават минуси - без повод. Аз намирам инфото от теб, че е много полезно и си е точно по темата. Увеличих ти точките с 3. Благодаря за информацията.
Между другото, това не винаги гарантира покриване на всички тестове.
Самите операции с битове са сведени до 3-4 основни сценария, които в тесния смисъл се отнасят до битовете,ако имаш проблем с конкретна задача, пиши на скайп,ако мога ще помогна :)