Как сделать все возможные изменения битов в кодовом слове?
У меня есть кодовое слово u, и мне нужно сделать программу, которая позволяет :
для 1<=i<=k произведите все возможные изменения l из k битов в u.
Пример 1:
if u = [1 1 0 1] ; k = 4 and l = 1
мы получаем :
u1 = [0 1 0 1] ; u2 = [1 0 0 1] ; u3 = [1 1 1 1] and u4 = [1 1 0 0].
Пример 2 :
if u = [1 0 0 ] ; k = 3 and l = 1
мы получаем :
u1 = [0 0 0] ; u2 = [1 1 0] and u3 = [1 0 1].
Я пытался программировать, но получаю :
if k = 3 and l = 1 u1 = [1 00] ; u2 = [010] and u3 = [001]
Что я уже пробовал:
Мой код :
l = 1; ind = nchoosek(1:k, l); t = size(ind,1); u1 = zeros(t,k); u1(bsxfun(@plus, (ind-1)*t, (1:t).')) = 1;
PIEBALDconsult
Пожалуйста, используйте "улучшить вопрос", чтобы объяснить, что вы пытаетесь сделать более четко.