Сколько байт мы помним?

в 10:07, , рубрики: php, искусственный интеллект, массивы, Научно-популярное, память, метки: , ,

Привет!

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

Однако, я не смог найти (и нагуглить тоже) достаточно четкого ответа на вопрос «как отличить то что мы действительно помним от того, что наш мозг достраивает в процессе вспоминания?».

Потому я подумал о том, какую еще память можно измерить — раз очень сложно измерять память долговременную, то почему бы не попробовать измерить количество памяти, которое мы можем выделить (аллокировать) на решение какой-то определенной задачи?

Я решил себя заранее не переоценивать и решил, что самая сложная структура, которую я в состоянии удержать в голове — это двумерный массив. Но, так как просто помнить массив чисел не интересно, я решил попробовать помнить состояние какой-нибудь игры, которое можно записать этим самым массивом.

Первое о чем я подумал были шахматы. На первый взгляд все просто — табличка 8*8, т.е. памяти нужно 64… чего? Для этого надо понять, сколько бит нужно для запоминания состояния одной клетки шахматной доски. На этот вопрос я ответ найти быстро не смог, а тратить много времени не хотел.
Потому я постарался вспомнить самую простую игру, поле которой можно хранить в таком массиве и решил, что это крестики-нолики.

Итак, каждая клетка может быть в трех состояниях
— на ней крестик
— на ней нолик
— на ней нет ничего.
Итого на ее запоминание нам хватит двух бит, а значит на поле, например, 3*3 нам нужно 18.

Теперь можно, наконец, приступить к оценкам. Для этого (пока не кончилось время обеда) я написал очень простой скрипт, с которым можно поиграть в крестики нолики (осторожно, говнокод pastebin.com/mfzu7Mfs).

Оказалось, что играть в крестики-нолики без изображения поля, удерживая его в памяти тяжело даже на поле 4*4, т.е. мне не так просто держать в памяти всего-то 32 бита!

Автор: k102

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js