• Как выводить кириллицу в программе на Си?

    @res2001
    Developer, ex-admin
    Когда пишите консольную программу для винды нужно учитывать:
    1.В какой кодировке в самом тексте программы ваши русские строки.
    2.Кодировка консоли может меняться. По умолчанию в виндовой консоли 866 кодировка, можно переключить на 1251.
    3.Консольное API и stdlib языка Си ничего автоматически не перекодирует.
    4.Компилятор ничего не перекодирует, ему вообще пофигу что у вас там в кавычках.
    5.Если выводите без перекодировки, то нормальный результат можно получить только если кодировка консоли совпадает с кодировкой ваших русских символов в исходнике.

    Что бы не зависеть от кодировки консоли можно:
    1.не выводить русские буквы
    2.Заморочится с перекодированием в кодировку консоли перед выводом. Это довольно легко, всего то пол суток чтения MSDN и тестов.
    Ответ написан
    Комментировать
  • Как изучать матанализ?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    У Кормена же есть в конце книги раздел со всей нужной математикой, его и читайте, если надо более глубоко, гуглите.
    Если считаете, что у Кормена много математики и не хотите тратить на это время, читайте Седжвика. Цели знакомства с алгоритмами это покроет в полной мере.
    Ответ написан
    1 комментарий
  • Как изучать матанализ?

    VMesser
    @VMesser
    gitter.im/VBA-developers
    Вам нужны две книги:
    1. Учебник матана
    2. Задачник с решениями.
    В первой сформулированы фундаментальные знания, со второй Вы сможете пропустить эти знания через себя. Можно ещё порекомендовать видеозаписи реальных академических лекций в подкрепление, потому что препод на то и препод, чтобы не просто зачитывать текст учебника, но ещё и доходчиво объяснять.

    Та штука на скриншоте это знак суммы. Имеется в виду, что на выходе этой функции будет сумма t(j)-1 при j от 2 до n. Например, если есть массив чисел t размером 5 [6,7,8,9,10], а первый элмент имеет номер 1, то это будет сумма для элементов, у которых j изменяется от 2 до 5, то есть ((t2)-1) + (t(3)-1)+ (t(4)-1)+(t(5)-1). При этом t(2) = 5, t(3) = 8 и т.д. Домашнее задание - посчитать сумму))
    Что за коэффициент вначале - хз.
    Ответ написан
    1 комментарий
  • Как изучать матанализ?

    @koronabora
    Человек
    Линейная алгебра и мат. анализ в объеме 1 курса СПБГу или МГУ. Этого за глаза хватит для 95% алгоритмов.

    А вообще, если вы в 10 классе, изучайте просто программу вперед.
    Ответ написан
    4 комментария
  • Где найти интересные задачи для изучения C++?

    @koronabora
    Человек
    Только олимпиадщина.

    informatics.mccme.ru
    Ответ написан
    Комментировать
  • Как стать хорошим Big Data / Data Scientist'ом в России?

    ZloyHobbit
    @ZloyHobbit
    Смотря что вы понимаете под "хорошим DS специалистом".
    В идеале для этого надо окончить сильный технический вуз, отлично знать матанализ, линейную алгебру (матрицы это туда), дискретную математику, математическую статистику, теорию вероятности, теорию алгоритмов, и.т.д. и.т.п.
    А потом знать R, python, с++ и все используемые в работе библиотеки и инструменты.

    Проблема большей части курсов, от того же ШАДа, что они раситчаны на студентов физтеха, которым уже дана очень серьезная математическая подготовка. Большая часть людей, прослушав эти курсы, научится применять стандартные инструменты в стандартных ситуация, абсолютно не понимая, какая математика за всем этим стоит, и как ее можно модифицировать. Это не специалисты, а ремесленики дата сайна, которых на хайпе расплодилось очень много.
    Хотите быть крутым исследователем - учите математику и становитесь математиком.
    Ответ написан
    10 комментариев
  • Как отсортировать кортеж?

    @deliro
    Я сейчас скажу прописную истину, но она, оказывается, далеко не очевидна для питон-программистов.
    Кортеж - это не "неизменяемый список". Кортеж - это структура данных. То, что кортеж умеет итерироваться - это хак, о котором даже сам Гвидо говорил.
    Как минимум, существование таких штук, как __slots__ и namedtuple должно натолкнуть на эти размышления.

    Касательно твоей задачи:
    def cmp(x):
        x = x.split('x')
        return int(x[0]) * int(x[1])
    
    sorted(SIZES, key=cmp)
    Ответ написан
    Комментировать
  • По каким книгам разбираться в Arduino?

    Для начала - "Искусство схемотехники" Хоровица.
    Ответ написан
    1 комментарий
  • По каким книгам разбираться в Arduino?

    Комментировать
  • Как побеждать на олимпиадах по математике и информатике?

    Daniro_San
    @Daniro_San
    Программист
    Никак

    Знающий не говорит, говорящий не знает (Лао Цзы)


    Просто участвуй в олимпиадах. Пытайся. Снова и снова. И наконец, тебе должно по настоящему нравится решать олимпиадные задачки, иначе все твои усилия будут бесполезны.

    От себя скажу что решать олимпиады по программированию != Хорошо программировать

    Говорю как человек в оных регулярно участвующий.

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

    Не веришь? Посмотри любые решения олимпиадников - на codeforces.com например.
    Там по всем стандартам ад и ужас.

    Лучше потратить время на что то действительно полезное, например на свой проект, разработка которого только в радость.
    Ответ написан
    Комментировать
  • Почему в Python при целочисленном делении (-1 // 2) получается ответ (-1)?

    @Mercury13
    Программист на «си с крестами» и не только
    Соответствующий кусок статьи Википедии «Деление с остатком» во многом мой, расскажу вкратце.

    Когда делитель отрицательный, в моей практике такого не бывало. А когда отрицательное делимое, есть два подхода. Но прежде выясним, что такое неполное частное и что такое остаток.
    q = [a / b], r = a − bq.
    Когда b>0, есть два подхода к округлению.
    1. Неполное частное округляется к нулю, остаток отрицательный.
    2. Неполное частное округляется к −∞, остаток положительный.
    Оба имеют право на жизнь: первый — когда преобразуем сумму в копейках в рубли-копейки, второй — когда огрубляем координаты, чтобы указать, в какой клетке находится точка.
    Можно эти правила расширить и на отрицательный делитель: a mod (−b) = −a mod b. В такой ситуации знак остатка равняется знаку делимого и делителя соответственно.
    В x86 (а значит, в большинстве ЯП) принят первый подход. А в Питоне — второй.
    Ответ написан
    Комментировать
  • Почему в Python при целочисленном делении (-1 // 2) получается ответ (-1)?

    aRegius
    @aRegius
    Python Enthusiast
    Добрый вечер.

    Просто запомните, что оператор // производит деление, округляя результат до ближайшего меньшего целого значения. Вот и все.

    -1 / 2 = - 0.5. Ближайшее меньшее целое значение: -1.
    Ответ написан
    Комментировать