• Отрицательный вклад на тостере?

    TosterModerator
    @TosterModerator Куратор тега Тостер
    Модератор Хабр Q&A
    Ситуация была обусловлена пробелом в алгоритме исчисления вклада: за собственные ответы, выбранные решениями, вклад не начислялся, а вот при их удалении списание вклада происходило. Это и произошло когда Вы удалили собственный ответ к вопросу Как восстановить аккаунт Facebook?
    После того как Вы обратили на это наше внимание, мы внесли необходимые корректировки в алгоритм исчисления вклада, устранив тем самым причину появления отрицательных значений.
    Ответ написан
    Комментировать
  • Создание легкого стратосферного зонда?

    Stalker_RED
    @Stalker_RED
    Возьмите может телефон?
    Можно взять б/у-шный, с убитым экраном, дешево
    Умеет сразу писать и фото и видео,
    умеет GPS,
    если доживет до посадки будут неплохие шансы сбросить координаты устройства через СМС, например.
    Надо будет только его завернуть во что-то, чтоб не замерз.

    Датчики подключите через USB OTG.
    Ответ написан
    Комментировать
  • Делимость двоичного числа на N?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    Динамическое программирование:
    F(a,b,r) = может ли число составленное из a едениц и b нулей давать остаток r при делении на N.
    База: F(0,0,0) = true, F(0,0,r) = false.

    Пересчет: Итеративный пересчет такой - F(a,b,r) => то F(a+1,b,(2*r+1) % N) и F(a,b+1,(2*r+1) % N) Тут мы знаем, что есть число, дающее остаток r из a едениц и b нулей. Если мы к нему припишем в конец 1, то остаток будет (2*r+1)%N, а единиц будет на одну больше. Также почти можно приписать 0.

    Для рекурсивного надо сначала избавится от всех степеней 2 в N (просто подсчитайте степень, вычтите это из B, поделите N на все двойки - В числе в конце обязательно должно стоять столько нулей).

    Теперь можно найти x такое, что 2x = 1 (mod N) - обратное к 2 по модулю N. Смотрите расширенный алгоритм Эвклида для этого.

    Дальше можно вычислять так (N - нечетное):
    F(a,b,r) = F(a-1,b, (r-1)*x % N) || F(a, b-1, r*x % N).

    Объяснение тут тоже простое - число или оканчивается на 0 или на 1. Попробуем оба варианта и сотрем последнюю цифру. Оставшееся число должно давать остаток (r-1)*x % N или r*x % N соответственно.

    Ответ: Если F(A,B,0) - true, то число делящееся на N есть. Для нахождения числа надо дополнительно запоминать, какие цифры приписывались к чисам при рассчетах выше.
    Ответ написан
    1 комментарий
  • Сколько можно зарабатывать на C++ в 14 лет?

    @ittakir
    Пока можешь только помочь однокласснику с задачками по информатике за деньги. На большее 2 недели С++ не тянут.
    В реальности во фрилансе по теме С++ ждут как минимум middle разработчика. Это опыт несколько лет, несколько завершенных проектов, и главное, самостоятельность.

    Я бы посоветовал лучше изучить мобильную разработку или web. Сначала сделать для себя несколько проектов. Набить руку, портфолио создать. И только потом уже пытаться делать что-то за деньги.
    Ответ написан
    3 комментария
  • Сколько можно зарабатывать на C++ в 14 лет?

    @m0nym
    1. Школьник ничем не отличается, пока работодатель/заказчик не видит/не слышит его (или его документы).
    2. 2 - недели - это не программист. Начинающий программист - это от двух лет опыта.
    3. С++ довольно редкий в наше время инструмент, работы по нему крайне мало.
    4. Сейчас огромное количество "войтивайти". Потому работать в ближайшее время придется только "за еду".
    5. Хорошо платят только квалифицированным специалистам
    Ответ написан
    Комментировать
  • Приложения корректировки форматирования кода?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Предлагаю написать обёртку, которая будет вызывать clangformat или что-то подобное. Всё равно разбираться никто не будет :)
    Ответ написан
    Комментировать
  • Хедеры в C/C++ - отдельные папки или вместе с исходниками? Подключать c путями или нет? Системные или обычные?

    Punk_Joker
    @Punk_Joker
    Software Engineer в ВО Овен
    Я храню каждый программный модуль в отдельной папке. и хедер лежит рядом с реализацией. В свойствах проекта задаются пути ко всем папкам. Это дает возможжность перносить модули, и при этом не править вдруг пути для инклудов, если один модуль зависит от другого.
    Ответ написан
    Комментировать
  • Есть ли такой алгоритм и как он называется?

    @Stqs
    senior software developer
    поидее чото такое нужно

    хотя задача описана вами довольно плохо
    не до конца понятно что именно вам нужно
    Ответ написан
    Комментировать
  • Как правильно использовать строки в плюсах?

    @Mercury13
    Программист на «си с крестами» и не только
    • std::string — как правило, если не указано противное.

    • QString, AnsiString/UnicodeString и прочие — в соответствующих фреймворках, обычно очень близко к интерфейсным функциям.

    • char* — практически не используется в реальном коде. В основном для оптимизации, если есть собственное управление памятью. Довелось как-то в собственном разборщике XML (работает в 2,5 раза медленнее рекордсмена, pugixml. Зато даже это в разы быстрее Excel’я, пространства имён «из коробки», расход памяти мизерный и программирование простейшее.)
    Зато по-чёрному используется его const-аналог.

    • const char*. Это может быть одинокий const char* + нуль-терминированная строка, или указатель+длина, или указатель на начало + указатель за конец.
    1. Если ожидается, что в функцию будем передавать строковый литерал.
    void writeEnum(st::Stream& st, int value, const char* names[]) {}
    
    enum class Letter { A, B, C, …, Z, NN };
    const char* natoNames[static_cast<int>(Letter::NN)] = { "alpha", "bravo", "charlie", … };
    writeEnum(someStream, static_cast<int>(Letter::E), natoName);

    2. Если операцию со строкой можно произвести «на месте», не заводя новую память: (trim, как известно,— обрезка пробелов в начале и конце)
    void trim(const char*& beg, const char*& end);

    3. Если структура данных паразитирует на чужих строках, не заводя своей памяти. Особенно если конструкция строк неизвестна (например, при передаче данных из плагина в плагин).
    struct ParasiteString { const char *beg, *end; };

    4. В библиотеках, если они реально настолько компактные, что нет нужды обязательно подключать жирный STL.

    • char[] — только как оптимизация, когда предельная длина строки известна и невелика.
    wchar_t* myFtos(double value, wchar_t* buf, const FloatFormat& format) {}
    
    wchar_t buf[100];
    myFtos(100.500, buf, FloatFormat::NICE);
    Ответ написан
    Комментировать
  • Что необходимо знать, чтобы создать игру?

    В вашей ситуации я бы не стал заморачиваться разработкой игры. Я бы заказал у какого-нибудь фрилансера анимацию (видео) по вашему сюжету. В этом видео я бы использовал свой звук. Для понятности я бы в субтитрах указал, что за звук слышно прямо сейчас.
    Ответ написан
    Комментировать
  • Программирование LED ленты, что нужно?

    @Xilian
    Программист 1С, сетевые технологии, SQL
    Для работы с LED лентами надо изучать не программирование, а аналоговую схемотехнику. Пока не поймете в чем разница между "токоограничивающими" и "подтягивающими" резисторами и зачем нужна RC- цепочка, лучше пользоваться только готовыми лентами и решениями.
    Ответ написан
    1 комментарий
  • Почему антивирусу нужны всякие root/телефон права, а вирусу нет? Как так то?

    Stalker_RED
    @Stalker_RED
    в том то и прикол что соблюдаю все меры предосторожности - не ставлю приложения из посторонних источников
    это не является достаточным условием же.

    То есть правило "не тащить кошек с помойки домой" - это полезная практика чтобы не завелись блохи, но от квартирных воров, от пожара или от шумных соседей - не защищает от слова "совсем".

    Список уязвимостей: https://source.android.com/security/bulletin/
    Вот к примеру за февраль: https://source.android.com/security/bulletin/2018-...
    Дырок немеряно. А теперь попробуйте проверить, как давно к вашему телефону выходили обновления, и закрыты ли там все перечисленные дыры. А ведь бывает еще 0-day (свежак, который еще просто не успел попасть ни в какие списки, даже закрытые).

    Про рут все верно pfg21 написал.
    Ответ написан
    Комментировать
  • Законно ли сейчас использование OpenVPN в организации?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    технология VPN не запрещена никаким законом. пока что.
    Ответ написан
    3 комментария
  • Кинула веб-студия, агентский договор?

    EGORR
    @EGORR
    Freelance
    Backdoor оставляйте. Я так делаю. Одним перцам негодным, которые вторую половину не выплатили, закрыл половину сайта чёрным дивом с надписью "Эта половина сайта ещё не оплачена". Убрать ума не хватило. Деньги на дом привезли.
    Ответ написан
    1 комментарий
  • Как выровнять процентное распределение по данным?

    longclaps
    @longclaps
    Идея разбодяжить настоящие данные фейковыми, чтобы получить что-то толковое - это бредовая идея.
    Инструменты для реализации бредовых идей можно подобрать, да.
    Ответ написан
    2 комментария
  • Arduino и 7 акселерометров LSM6DS33?

    @Fixid
    Из простых:
    Используйте качественные экранированные провода.
    Попробуйте обычную витую пару.
    Снизите скорость SPI.
    Для общего развития
    Остальные способы подразумевают наличие кое каких знаний.
    Ответ написан
    2 комментария
  • Как логически разбить цены на 5 диапазонов, если цены больше 5?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Но вариант не подошел, не всегда может правильно группировать.


    Так и хочется ответить "42".

    Судя по постановке вопроса вы и сами не знаете "как правильно" группировать. Для начала определитесь для себя, как выглядит "правильно отсортированный результат". для начала в частных случаях, потом в общем виде (алгоритмически).
    Ответ написан
    Комментировать
  • Зачем Virtual box для Vagrant под Linux?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    https://www.vagrantup.com/docs/providers/

    Virtual Box это не для эмуляции Linux, а для создания виртуальных машин, любых и на любой ОСи.
    Т.е. VPSок/контейнеров с отдельным окружением.
    Ответ написан
    Комментировать
  • Как правильно чистить память в c++?

    @res2001
    Developer, ex-admin
    Ошибка вылетает только при компиляции в Debug, потому что в этом режиме, скорее всего, в код включаются проверки целостности кучи. Просто в release целостность кучи не проверяется, но это не значит, что ошибки нет.

    Ошибка тут:
    for (int i = 0; i <= deg; i++) newdata[i] = data[i];
    Вместо deg нужно использовать maxdeg, имхо.

    Кроме того вы не проверяете значение deg и maxdeg до выделения памяти. Что если они содержат значения <= 0?

    Возможно, есть и другие места с присваиванием массиву data и переменной deg. Нужно искать выход за границу массива при присваивании элементам массива из-за чего повреждается куча.
    Так же настораживает new int[deg +1] и операторы >= и <= в условиях циклов обхода массива, это потенциальные места выхода за границу. Возможно, если перейти от deg к количеству элементов в массиве, то код упростится (уберете +1 при выделении и = в условии циклов) и будет легче найти ошибку.

    PS: в качестве небольшой оптимизации: для обнуления массива можно использовать функцию memset, для копирования массивов - memcpy.
    Ответ написан
    1 комментарий