因此,我正在编写一个程序来确定一个串珠项链的独特组合,但我似乎无法做到正确。规则是你不能有同样的项链向前和向后,你不能有一个珠子滑到另一端的同一条项链。我附上了一些图片来澄清。串珠项链的独特组合
我写的代码吧,我想我已经达到了我要怎样做,但它不能正常工作。
n = [1 2 3 4 2 4];
% green = 1
% blue = 2
% yellow = 3
% red = 4
p = perms(n);
total = max(size(p));
for i = 1:max(size(p))
q = p;
q(i) = [];
for j = 1:max(size(q))
if isequal(p(i),fliplr(q(j)))
total = total - 1;
elseif isequal(p(i),circshift(q(j),[1,1]))
total = total - 1;
elseif isequal(p(i),circshift(q(j),[length(q(j))-1,length(q(j))-1]))
total = total - 1;
end
disp(total)
end
end
从逻辑上讲,这对我很有意义,但我可能只是疯了。
我知道了。它可能有点草率,但我想我明白了。我试图用1x3矩阵来做同样的事情,并且在更小的层次上理解起来要容易得多。我犯的最大错误是使用p(i)而不是p(i,:)。谢谢您的帮助。 – Tony 2014-10-10 16:41:56