Задать вопрос
Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (30)

Лучшие ответы пользователя

Все ответы (43)
  • По какой формуле считается приз на рулетках?

    @lorc
    Ну на самом деле все логично. Мы делим ставку на вероятность выигрыша. И округляем конечно же вниз:

    1 / 0.01 = 100
    1 / 0.95 = 1.0526 ~= 1.05

    Если предположить что шансы у них честные, то доход казино обеспечивается как раз этим округлением вниз. Во втором случае матожидание выигрыша получается 1.05 * 0.95 = 0.9975 рубля на каждый поставленный рубль.

    Классическая рулетка работает точно так же. Только там добавляется сектор зеро, на котором вы всегда проигрываете. Он и обеспечивает доход казино.
    Ответ написан
    Комментировать
  • Как снять данные с нескольких аналоговых пинов быстро и точно?

    @lorc
    STM32F0 имеет DMA для ADC. Соответственно, все что вам нужно - это правильно настроить эту связку и запустить ADC в непрерывном режиме. ADC будет проводить измерения как можно быстрее, а DMA будет складывать эти измерения в память. Может так оказаться, что для вас это будет даже слишком быстро, ибо ADC в 12битном режиме может выдавать данные с частотой вплоть до мегагерца.
    Ответ написан
    4 комментария
  • В чём разница способов подключения кириллицы?

    @lorc
    Исходя из опытов выше, возникает вопрос: а чем различаются эти два варианта подключения кириллицы к проекту?


    Практически всем. На самом деле, у вас есть две сущности - ваша программа и терминал. Ваша программа читает данные из stdin и пишет в stdout/stderr. Терминал же занимается тем, что отображает данные на экран. Для вас критически важно, чтобы программа передавала данные в той кодировке, в которой их ожидает увидеть терминал.

    Соотвественно, когда вы вызываете SetConsoleOutputCP(1251), вы говорите терминалу "ожидай данные в кодировке СР1251". Это плохо по нескольким причинам:

    • Это чисто виндова функция. Она не переносима на другие платформы
    • СР1251 - однобайтовая кодировка и ее лучше не использовать в 21 веке. Нужен юникод.
    • Другие программы, работающие в этом же терминале (например echo) не знают что вы поменяли кодировку терминала. Потому вы и видите мусор.


    Когда вы вызываете setlocale - вы говорите своей программе "возьми настройки кодировки из окружения и выдавай текст в ней". В результате вы подстраиваетесь под терминал и используете ту кодировку, в которой он работает. Скорее всего это будет юникод. В этом варианте все минусы превращаются в плюсы - это переносимо, это юникод, остальные программы будут работать нормально.

    Кстати, вызывать setlocale с параметром Russian не совсем верно. Нужно использовать пустую строку -"". Интересно, что я уже второй раз вижу на тостере именно "Russian". Кажется, где-то по рунету гуляет неправильный пример.
    Ответ написан
    Комментировать
  • Существует ли какая-нибудь система измерений, согласно которой 1 килобайт = 1024 байт?

    @lorc
    Нет такой системы. Правильно бы говорить "кибибайт", "мебибайт", "гибибайт" и так далее. Но все по привычке говорят "кило-", "мега-", "гига-". Кроме производителей жестких дисков и других накопителей. Они пользуются этими терминами правильно.

    Так что да, чисто формально, те кто под килобайтом подразумевает 1024 байта - неграмотные люди.
    Ответ написан
    Комментировать
  • Что лучше проверять mime тип файла или его расширение или все вместе?

    @lorc
    Так как нельзя доверять любому вводу от пользователя, то по хорошему надо бы проверить не расширение и не mime (которые могут прийти любые), а собственно содержимое файла. Например - если вы ожидаете изображение jpeg - убедиться что у него есть соответствующие заголовки.
    Ответ написан
    Комментировать