<bgdev />free

Вход Регистрация

От старите ленти, когато вместо форуми се пишеха бацили
0

0 1
#90611 (ツ) palavrov
Създадено на 17.05.2023, видяно: 232 пъти.
johnfound
palavrov

- Метода на космическите лъчи - седиш и чакаш масива да се сортира сам ...

Ами не, това не работи. Компютърът при всички случаи ще забие преди да се сортира масива.

Но има по-добър вариант на този алгоритъм:

1. Разбъркваш елементите случайно.

2. Проверяваш дали е сортиран масива.

3. Ако не, goto 1

Ти откъде знаеш, че ще забие? Да не си чакал и да е забил случайно?

rofl rofl rofl

#90613 (ツ) johnfound
Последно редактирано на 17.05.2023 от johnfound, видяно: 230 пъти.
palavrov

Ти откъде знаеш, че ще забие? Да не си чакал и да е забил случайно?

rofl rofl rofl

Има и още една забележка – прочети редакцията на предишния ми пост. ;-)

#90614 (ツ) palavrov
Създадено на 17.05.2023, видяно: 226 пъти.
johnfound

При това, ще трябва да дефинираш стоп критерий – как ще разбереш, че масивът се е сортирал и съдържа именно началните стойности, но сортирани?

Е, това е за хора дето мислят - тези които задават такива въпроси по интервюта рядко са такива ...

Друг начин да ги цакам е да ги питам дали знаят с колко търсения се намира дали дадено число го има в сортиран масив с 1000 елемента в него. И по времето за отговор ги преценям колко са в час.

#90615 (ツ) johnfound
Създадено на 17.05.2023, видяно: 220 пъти.
palavrov
johnfound

При това, ще трябва да дефинираш стоп критерий – как ще разбереш, че масивът се е сортирал и съдържа именно началните стойности, но сортирани?

Е, това е за хора дето мислят - тези които задават такива въпроси по интервюта рядко са такива ...

Друг начин да ги цакам е да ги питам дали знаят с колко търсения се намира дали дадено число го има в сортиран масив с 1000 елемента в него. И по времето за отговор ги преценям колко са в час.

Тоест, задаваш провокационен въпрос. Даваш на него грешен отговор и като ти се вържат на грешния отговор, разбираш, че са идиоти и си вдигаш ЧСВ-то?

А ако някой разбере, че отговорът ти е грешен, значи е гений и си струва да работиш с него? Но пак засада – той едва ли ще иска да работи с хора, които дават грешни отговори на провокационни въпроси, които сами задават... rofl

#90617 (ツ) palavrov
Създадено на 17.05.2023, видяно: 217 пъти.
johnfound
palavrov
johnfound

При това, ще трябва да дефинираш стоп критерий – как ще разбереш, че масивът се е сортирал и съдържа именно началните стойности, но сортирани?

Е, това е за хора дето мислят - тези които задават такива въпроси по интервюта рядко са такива ...

Друг начин да ги цакам е да ги питам дали знаят с колко търсения се намира дали дадено число го има в сортиран масив с 1000 елемента в него. И по времето за отговор ги преценям колко са в час.

Тоест, задаваш провокационен въпрос. Даваш на него грешен отговор и като ти се вържат на грешния отговор, разбираш, че са идиоти и си вдигаш ЧСВ-то?

А ако някой разбере, че отговорът ти е грешен, значи е гений и си струва да работиш с него? Но пак засада – той едва ли ще иска да работи с хора, които дават грешни отговори на провокационни въпроси, които сами задават... rofl

Не. Проверявам ги дали си имат представа от алгоритми. Търсене на елемент в сортиран масив е един от основните алгоритми - двоично търсене. И за да отговориш на него трябва да му знаеш сложността - онова голямото О в книгите на Кнут. А за да дадеш конкретен отговор трябва да знаеш степените на 2. А за да ги знаеш наизуст поне до 2^16 си иска да си се занимавал и да си внимавал. Досега само 2-3-ма са отговорили без да се замислят и точно те са хората с които си струва да работиш. Може би общо десетина човека са дали горе долу верен отговор анализирайки бавно и внимателно т.е. поне са учили и нещо им е останало в главите. Останалото е шкарто - един наистина се пробва да ми даде изсмукан от пръстите отговор - 15 било, що 15? ми така ... и така и приключи интервюто rofl

Всъщност този въпрос съм го задавал повече когато аз съм правил интервю да наемам хора, рядко съм препитвал интервюиращия мен ама се е случвало и никога не са отговаряли отма.

#90618 (ツ) johnfound
Създадено на 17.05.2023, видяно: 207 пъти.
palavrov
johnfound
palavrov
johnfound

При това, ще трябва да дефинираш стоп критерий – как ще разбереш, че масивът се е сортирал и съдържа именно началните стойности, но сортирани?

Е, това е за хора дето мислят - тези които задават такива въпроси по интервюта рядко са такива ...

Друг начин да ги цакам е да ги питам дали знаят с колко търсения се намира дали дадено число го има в сортиран масив с 1000 елемента в него. И по времето за отговор ги преценям колко са в час.

Тоест, задаваш провокационен въпрос. Даваш на него грешен отговор и като ти се вържат на грешния отговор, разбираш, че са идиоти и си вдигаш ЧСВ-то?

А ако някой разбере, че отговорът ти е грешен, значи е гений и си струва да работиш с него? Но пак засада – той едва ли ще иска да работи с хора, които дават грешни отговори на провокационни въпроси, които сами задават... rofl

Не. Проверявам ги дали си имат представа от алгоритми. Търсене на елемент в сортиран масив е един от основните алгоритми - двоично търсене. И за да отговориш на него трябва да му знаеш сложността - онова голямото О в книгите на Кнут. А за да дадеш конкретен отговор трябва да знаеш степените на 2. А за да ги знаеш наизуст поне до 2^16 си иска да си се занимавал и да си внимавал. Досега само 2-3-ма са отговорили без да се замислят и точно те са хората с които си струва да работиш. Може би общо десетина човека са дали горе долу верен отговор анализирайки бавно и внимателно т.е. поне са учили и нещо им е останало в главите. Останалото е шкарто - един наистина се пробва да ми даде изсмукан от пръстите отговор - 15 било, що 15? ми така ... и така и приключи интервюто rofl

Всъщност този въпрос съм го задавал повече когато аз съм правил интервю да наемам хора, рядко съм препитвал интервюиращия мен ама се е случвало и никога не са отговаряли отма.

Аз имах предвид сортирането.

А за двоичното търсене, това е въпрос за ученици 8..9 клас. Аз оттогава знам наизуст степените на двойката и смятам наум в шестнайсетична бройна система.

Ще ме вземеш ли на работа?

#90619 (ツ) palavrov
Създадено на 17.05.2023, видяно: 197 пъти.
johnfound
palavrov
johnfound
palavrov
johnfound

При това, ще трябва да дефинираш стоп критерий – как ще разбереш, че масивът се е сортирал и съдържа именно началните стойности, но сортирани?

Е, това е за хора дето мислят - тези които задават такива въпроси по интервюта рядко са такива ...

Друг начин да ги цакам е да ги питам дали знаят с колко търсения се намира дали дадено число го има в сортиран масив с 1000 елемента в него. И по времето за отговор ги преценям колко са в час.

Тоест, задаваш провокационен въпрос. Даваш на него грешен отговор и като ти се вържат на грешния отговор, разбираш, че са идиоти и си вдигаш ЧСВ-то?

А ако някой разбере, че отговорът ти е грешен, значи е гений и си струва да работиш с него? Но пак засада – той едва ли ще иска да работи с хора, които дават грешни отговори на провокационни въпроси, които сами задават... rofl

Не. Проверявам ги дали си имат представа от алгоритми. Търсене на елемент в сортиран масив е един от основните алгоритми - двоично търсене. И за да отговориш на него трябва да му знаеш сложността - онова голямото О в книгите на Кнут. А за да дадеш конкретен отговор трябва да знаеш степените на 2. А за да ги знаеш наизуст поне до 2^16 си иска да си се занимавал и да си внимавал. Досега само 2-3-ма са отговорили без да се замислят и точно те са хората с които си струва да работиш. Може би общо десетина човека са дали горе долу верен отговор анализирайки бавно и внимателно т.е. поне са учили и нещо им е останало в главите. Останалото е шкарто - един наистина се пробва да ми даде изсмукан от пръстите отговор - 15 било, що 15? ми така ... и така и приключи интервюто rofl

Всъщност този въпрос съм го задавал повече когато аз съм правил интервю да наемам хора, рядко съм препитвал интервюиращия мен ама се е случвало и никога не са отговаряли отма.

Аз имах предвид сортирането.

А за двоичното търсене, това е въпрос за ученици 8..9 клас. Аз оттогава знам наизуст степените на двойката и смятам наум в шестнайсетична бройна система.

Ще ме вземеш ли на работа?

Тц ... отказах се преди 15 години да работя с хора - не ме кефи. Предпочитам да си програмирам т.е. ако искам да си стигам до нивото на некомпетентност както е по принципа на Питър. Тука от два месеца помагам на бившия ми стартъп да си стъпят на краката и водя двама юнака (турчин и мароканец - между другото са точни) и хич не ме кефи. Гледам ги, че вече се оправят горе долу сами и от понеделник започвам паралелно с друг клиент, че заради часовата разлика със щатите сутрините са ми празни и общо взето скучая. А така ще разцъквам някакъв РТОС за управление на топломери ли, контролери за парно ли - все тая, да съм по близо да желязото, че сегашния ми проект е за модеми и рутери дето си е ембедед линукс и е само юзер спейс рутиране на пакети.

Между другото като казваш, че е въпрос за ученици си припомням, че докато имах персонал в БГ ги бях подхванал да ги питам за формулата за решаване на квадратно уравнение и всички я объркаха - дипломирани инженери, математици и т.н. Правехме счетоводен софтуер и всичко тръгна като ги слушах как спорят дали трябва първо да начислят ДДС и после да направят отстъпка или обратно. Т.е. не знаеха правилото A.B.C = B.C.A = C.A.B = C.B.A. То в интерес на истината има значение заради закръглянето на единичната цена и от там натрупване на грешка при смятането на ДДС-то ама това си беше направо висша математика за тез момци ... абе кофти матриал ...

#90620 (ツ) bobyb
Създадено на 17.05.2023, видяно: 195 пъти.

То е ясно че отговора е логаритъм на двойката, или натурален логаритъм за по завъртяното търсене, но не знам зашо ми дойде наум че сигурно отговора е 10. Като видях да споменаваш степента на двойката, съобразих че е наобратно един вид и това е отговора. Подсъзнателно помня нещо от далечното минало :)

#90621 (ツ) palavrov
Създадено на 17.05.2023, видяно: 192 пъти.
bobyb

То е ясно че отговора е логаритъм на двойката, или натурален логаритъм за по завъртяното търсене, но не знам зашо ми дойде наум че сигурно отговора е 10. Като видях да споменаваш степента на двойката, съобразих че е наобратно един вид и това е отговора. Подсъзнателно помня нещо от далечното минало :)

10 e.

2^10=1024 т.е. ако големината на буфера е между 512 и 1024 ти трябват 10 сравнения за да провериш, че дадено число е в буфера. От 1024 до 2048 са 11 и т.н.

То това е за да тестваш някой който вече искаш да го наемеш доколко са му задълбочени знанията и опита. Важно е защото като напише един цикил трябва да си има поне някакво елементарно понятие каква ще е сложността според данните които трябва да обработи а не да влага цикъл в цикъл щото нали процесора можел да изпълни няколко милярда операции в секунда - може ама ако данните са му в регистрите или в стека. Ако не са става тегаво. Иначе най доброто интервю което са ми правили беше в един каубойски стартъп за ел.колелета (cowboy.com) където ми дадоха за домашно нарочно непълно задание с грешки и т.н. да видят как ще реагирам. Ядосах се и го написах същата вечер, че откарах май до 2-3 след полунощ. Та всички липсващи изисквания от заданието можеше да обосновано да се предположат което и направих с ясни коментари в кода и т.н. Наистина много добър начин да се филтрира шкартото защото в практиката непълните задания са си нещо нормално и ако не можеш да се оправиш сам ами ходиш да ревеш, че това или онова липсва си е губене на време на колегите ти. Е, има го и варианта без да питаш да направиш нещо грешно. Та накрая не се зехме с тез защото не искаха лятото да работя 2 месеца от БГ-то. А мен не ми се седи като детето е във ваканция в тая мухлива Белгия ...,

#90642 (ツ) Дон Реба
Създадено на 18.05.2023, видяно: 172 пъти.

каубойците определено са измислили по-добър начин за търсене на хора. твоя метод със двоичното търсене не може да отличи зубър от човек който разбира, накито от дира сигурно ще ти отговори вярно, но не вярвам да мине задачата с непълно условие.

#90647 (ツ) Rabin
Създадено на 18.05.2023, видяно: 155 пъти.

Като почнат да ми дават задачи от типа да разменя 2 променливи, ама без да ползвам трета, или масива с 1000 елемента, дето само едно число се повтаря, да го намеря без допълнителни променливи.

Такива изтрещели чичаци ги оставям в сектата им, да се навиват един друг, колко са велики, и да приказват за кози.

#90661 (ツ) palavrov
Създадено на 18.05.2023, видяно: 132 пъти.
Rabin

Като почнат да ми дават задачи от типа да разменя 2 променливи, ама без да ползвам трета, или масива с 1000 елемента, дето само едно число се повтаря, да го намеря без допълнителни променливи.

Такива изтрещели чичаци ги оставям в сектата им, да се навиват един друг, колко са велики, и да приказват за кози.

Ти нещо взе само да приказваш за кози ...

#90664 (ツ) Rabin
Създадено на 18.05.2023, видяно: 126 пъти.
palavrov

Ти нещо взе само да приказваш за кози ...

Ako не бяхте 5 човека накръст, щях да ви запукам с админските инструменти. Зарад ваще скодоумия форумчето умрЕ. Мързи ме да влизам по цял месец. Аутизъм до гуша.

#90668 (ツ) palavrov
Създадено на 18.05.2023, видяно: 119 пъти.
Дон Реба

каубойците определено са измислили по-добър начин за търсене на хора. твоя метод със двоичното търсене не може да отличи зубър от човек който разбира, накито от дира сигурно ще ти отговори вярно, но не вярвам да мине задачата с непълно условие.

Още ми е в мейлите ... това е заданието:

Please find attached the test case in cpp. It's not very well defined on purpose, the target is to trigger discussion with the development team during F2F (or Camera 2 Camera) interview Expectation:your solution within 48h, with your assumptions in comment and suggestion, idea. We do not expect something which can compile directly.

И прикачения файл:

#include <iostream>

/** GPSTest
 *
 * The goal is to get a valid time and position from a GPS.
 *
 * Then, send the position to the web-API endpoint https://bike-api.cowboy.bike/position
 * Format of the data is defined in the Web API struct gps_info.
 *
 * If the position has not been received after 10 minutes, but there is a valid time you should send the time to the web-API.
 *
 *
 *
 *
 * GPS documentation :
 *
 * The platform has a GPS receiver attached to the MCU via I2C on bus 1 and an interrupt signal on GPIO 12 that the GPS can pull low when it has data.
 *
 * The GPS has an 8-bit configuration register at address 0 you can write with the following options:
 * BIT0: enable interrupt line
 * BIT1: Interrupt on time
 * BIT2: Interrupt on position
 *
 * The time is received by doing a standard I2C read from address 1
 * This is the payload:
 * +-------------+--------+-------+-------+-----------------------------------------------------+
 * | Byte Offset | Format | Name  | Unit  | Description                                         |
 * +-------------+--------+-------+-------+-----------------------------------------------------+
 * | 0           | U4     | iTOW  | ms    | GPS time of week of the navigation epoch.           |
 * +-------------+--------+-------+-------+-----------------------------------------------------+
 * | 4           | U2     | year  | y     | Year (UTC)                                          |
 * +-------------+--------+-------+-------+-----------------------------------------------------+
 * | 6           | U1     | month | month | Month, range 1..12 (UTC)                            |
 * +-------------+--------+-------+-------+-----------------------------------------------------+
 * | 7           | U1     | day   | d     | Day of month, range 1..31 (UTC)                     |
 * +-------------+--------+-------+-------+-----------------------------------------------------+
 * | 8           | U1     | hour  | h     | Hour of day, range 0..23 (UTC)                      |
 * +-------------+--------+-------+-------+-----------------------------------------------------+
 * | 9           | U1     | min   | min   | Minute of hour, range 0..59 (UTC)                   |
 * +-------------+--------+-------+-------+-----------------------------------------------------+
 * | 10          | U1     | sec   | s     | Seconds of minute, range 0..60 (UTC)                |
 * +-------------+--------+-------+-------+-----------------------------------------------------+
 * | 11          | X1     | valid | -     | Validity flags (bit 0: validDate, bit 1: validTime) |
 * +-------------+--------+-------+-------+-----------------------------------------------------+
 *
 * The position is received by doing a standard I2C read from address 2
 * This is the payload:
 * +-------------+--------+-------------+----------------------------------------------------------+
 * | Byte Offset | Format | Name        | Description                                              |
 * +-------------+--------+-------------+----------------------------------------------------------+
 * | 0           | U1     | latitude    | degrees part of the latitude                             |
 * +-------------+--------+-------------+----------------------------------------------------------+
 * | 1           | U2     | latitude    | minutes part of the latitude, scaled by *1000            |
 * +-------------+--------+-------------+----------------------------------------------------------+
 * | 3           | CHAR   | north/south | 'N' for North, 'S' for South                             |
 * +-------------+--------+-------------+----------------------------------------------------------+
 * | 4           | U1     | longitude   | degrees part of the longitude                            |
 * +-------------+--------+-------------+----------------------------------------------------------+
 * | 5           | U2     | longitude   | minutes part of the longitude, scaled by *1000           |
 * +-------------+--------+-------------+----------------------------------------------------------+
 * | 7           | CHAR   | east/west   | 'E' for East, 'W' for West                               |
 * +-------------+--------+-------------+----------------------------------------------------------+
 *
 *
 * Additionnal info :
 *
 * Standard Timer/clock lib can be used, no need to reimplement it.
 *
 * Included classes : (should be used as is, no need to complete it or rework it)
 *
 *  - I2CDevice : Define the interface of an I2C communication
 *  - WebAPI : Define the interface of the web API communication
 */

using namespace std;
typedef void CallbackFunction(void);

class I2CDevice {
    public:
         /**
         * @brief I2CDevice
         * @param bus
         * @param device_address
         */
        I2CDevice(uint8_t bus, uint8_t device_address);

        /** Enable interrupt
         * @param pin
         * @param level
         * @param cbfunction function that will be called when interrupt is triggered.
         */
        void registerInterrupt(uint32_t pin, uint8_t level, CallbackFunction cbfunction);

        /** write data to device
         * @param len
         * @param data
         * @return number of bytes written
         */
        int write(size_t len, uint8_t *data);

        /** Read data from the device
         * @param len the maximum size of the buffer
         * @param buffer to write data into
         * @return the number of bytes read
         */
        int read(size_t len, uint8_t *buffer);

        /** write data to device/register
         * @param regAddr
         * @param len
         * @param data
         * @return number of bytes written
         */
        int writeReg(uint8_t regAddr, size_t len, uint8_t *data);

        /** Read data from the device/register
         * @param regAddr
         * @param len the maximum size of the buffer
         * @param buffer to write data into
         * @return the number of bytes read
         */
        int readReg(uint8_t regAddr, size_t len, uint8_t *buffer);
};


class WebAPI {
    public:

        typedef struct {
            uint16_t tm_year;
            uint8_t tm_month;
            uint8_t tm_day;
            uint8_t tm_hour;
            uint8_t tm_minute;
            uint8_t tm_second;
        } tm;


        typedef struct {
            tm time;
        } gps_info;

        /**
         * @brief WebAPI
         * @param endpoint : endpoint of the backend to transfer the data
         * @param dataBuffer :
         */
        WebAPI(std::string endpoint, APIDataBuffer dataBuffer);

        /**
         * Send dataBuffer to the backend
         * @return true on success
         */
        bool sendData();

    protected:
        class APIDataBuffer {
            public:
                APIDataBuffer();

                /** read gps info
                 * @param gps info struct
                 * @return actual bytes that were written to the buffer
                 */
                virtual int readData(gps_info *info) = 0;
        };
};

int main()
{
    cout << "Hello Cowboy!" << endl;

    return 0;
}

АКо на някой му е интересно мога да кача и моя отговор ...

#90669 (ツ) Един от многото
Последно редактирано на 18.05.2023 от Един от многото, видяно: 112 пъти.
palavrov

АКо на някой му е интересно мога да кача и моя отговор ...

Бей бе - тва да не ти е IT форум... мани го тоя C++ (преподавал съм го, знам го) те ти доцент Вацев... 😏

#90673 (ツ) palavrov
Последно редактирано на 18.05.2023 от palavrov, видяно: 105 пъти.
Един от многото
palavrov

АКо на някой му е интересно мога да кача и моя отговор ...

Бей бе - тва да не ти е IT форум... мани го тоя C++ (преподавал съм го, знам го) те ти доцент Вацев... 😏

Верно, това че пишат Ц++ ми накара да дигна едната вежда. ++ не е препоръчителен за ембедед устройства, по добре чисто Ц.

#90674 (ツ) Golden Gega
Последно редактирано на 18.05.2023 от Golden Gega, видяно: 99 пъти.
palavrov
Един от многото
palavrov

АКо на някой му е интересно мога да кача и моя отговор ...

Бей бе - тва да не ти е IT форум... мани го тоя C++ (преподавал съм го, знам го) те ти доцент Вацев... 😏

Верно, това че пишат Ц++ ми накара да дигна едната вежда. ++ не е препорачителен за ембедед устройства, по добре чисто Ц.

Тука великите синиър програмисти кодят с AI, е виж Бамбо тамън се похвали че чатбота му писал заготовки код и го изхвърлиха по некадърност с останалите синиъри дето и те пишат с ботове

#90677 (ツ) Rabin
Създадено на 18.05.2023, видяно: 90 пъти.
Golden Gega

е виж Бамбо тамън се похвали че чатбота му писал заготовки код и го изхвърлиха по некадърност с останалите синиъри дето и те пишат с ботове

Аз съм си поел пътя, идеята ми е да се махна от ганорника, и само по тоя вектор напиням.

Тебе ще те питам, като почнеш да ходиш с памперса на работа. Де викаше един Императора в форума на Инвестор - ще те намерят един ден озъбен до радиатора в офиса.

0 1

От старите ленти, когато вместо форуми се пишеха бацили
0

AsmBB v3.0 (check-in: a316dab8b98d07d9); SQLite v3.42.0 (check-in: 831d0fb2836b71c9);
©2016..2023 John Found; Licensed under EUPL. Powered by Assembly language Created with Fresh IDE