• Как найти машинную бесконечность?

    @Mercury13
    Программист на «си с крестами» и не только
    Важный вопрос: есть ли неявная единица и денормализованные числа?
    Считаем, что всё-таки есть, порядок несмещённый, записан дополнительным кодом, денормализованное число записывается 10…00 в порядке. (А то всяко бывает, в нашем родном float порядок смещён на 01…11).
    Тогда максимальное число, которое можно записать, равняется 1,1…1112·22^13−1.
    Ну а бесконечность — примерно 2·22^13−1 = 22^13.
    Wolfram Alpha говорит, что это 1,091·102466.
    Ответ написан
    5 комментариев
  • Как правильно понять, клетка в шахматах 1 бит или 13 бит?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Бит - минимальная единица информации. Он имеет два состояния, включено/выключено, истина/ложь, чёрное/белое, 0/1 и т.д.
    Для того, чтобы закодировать N разных состояний необходимо ⌈log2N⌉ битов.
    Таким образом, 13 состояний клетки потребуют ⌈log213⌉ = 4 бита.
    Цвет клетки можно получить из её позиции на доске, отдельного бита для хранения при этом не требуется.
    Ответ написан
    3 комментария
  • Как правильно понять, клетка в шахматах 1 бит или 13 бит?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Если клетка может иметь 13 различных состояния, то надо log_2(13)=3.7004... бит. Т.е. если хранить каждую клетку отдельно, то она будет 4 бита.

    Дополнительный цвет клетки удвоит количество возможных вариантов. Будет нужно на 1 бит больше (log2(13*2)=log2(13) + log2(2) = log2(13)+1).

    Запомните, количество бит = логарифм от количества вохможных вариантов. Потому что каждый бит, имея 2 значения, умножает количество возможных вариантов значений на 2.
    Ответ написан
    3 комментария