Если вам нужен большой размер таблица истинности матрица (~ 2^30
x 30
), как вы сказали здесь , с точки зрения памяти, вы должны реализоватьфункция, которая быстро вычисляет нужные значения, а не сохраняет их в матрице.
Это легко сделать с помощью std::bitset
следующим образом.Обратите внимание, что N
должен быть определен во время компиляции в этом методе.Тогда вы можете получить значение вашего A(i,j)
по matrix<3>(i,j)
:
DEMO
#include <bitset>
template <std::size_t N>
std::size_t matrix(std::size_t i, std::size_t j)
{
return std::bitset<N>(i)[N-j-1];
}