Есть программа (сейчас на матлабе), в которой я перебираю большое количество вариантов, точнее, все последовательности 0 и 1 размером n, т.е. 2^n. Соответственно, начало следующее:
parfor i = 1:2^(box_size^2/2)-1
c_points = de2bi(i,box_size^2/2);
box = zeros(box_size+2,box_size+2);
for j = 1:box_size
box(j+1,2+rem(j,2):2:box_size+1) = c_points(1 + (j-1)*box_size/2:j*box_size/2);
end
de2bi - преобразует неотрицательное целое число i в вектор-строку двоичных цифр.
Есть ли простые способы это оптимизировать? Например, есть ли способ генерировать эти 0-1 строки оптимальнее? Сейчас выполнение занимает слишком много времени. Далее происходят не слишком сложные операции с матрицей box
и, скорее всего, я даже готов переписать это на каком-нибудь другом языке, если это принесет ощутимый прирост к скорости выполнения.