iobug 发表于 2014-6-27 17:06

多维数组变一维数组,比较复杂,非诚勿看

多维数组变一维数组,规则如下:
1. arrA = arrB;
2. 要求a<b<c<d<e<f<33;
例如:
arrA[ 0, 1, 2, 3, 4, 5] = arrB
arrA[ 0, 1, 2, 3, 4, 6] = arrB
arrA[ 0, 1, 2, 3, 4,32] = arrB
arrA[ 0, 1, 2, 3, 5, 6] = arrB
arrA[ 0, 1, 2, 3, 5, 7] = arrB
arrA[ 0, 1, 2, 3, 5,32] = arrB
arrA[ 0, 1, 2, 3, 6, 7] = arrB
arrA[ 0, 1, 2, 4, 5, 6] = arrB
arrA[ 0, 1, 2, 6, 7, 8] = arrB
arrA[ 0, 1, 2, 7, 8, 9] = arrB
arrA[ 0, 1, 3, 4, 5, 6] = arrB
arrA[ 0, 1, 3, 4, 5, 7] = arrB
arrA[ 0, 1, 4, 5, 6, 7] = arrB
求:1. arrB=arrA中的abcdef值
2. arrB = arrA中的abcdef表达式或者程序


snowwomanPeter 发表于 2014-7-14 14:42

本帖最后由 snowwomanPeter 于 2014-7-14 14:51 编辑

你的这个问题计算量太大啦,估计一般的计算机还有点吃不消。InitArr=0:5;
Arr=[];k=0;
change=0;index=0;
while(InitArr(1)<28)
    for i=1:length(InitArr)
        if(InitArr(i)>32)
            change=1;
            index = i;
            break;
        end
    end
    if(change==1)
        InitArr(index-1)=InitArr(index-1)+1;
        for j=index:6
            InitArr(j)=InitArr(index-1)+j-index+1;
        end
        change=0;
    else
        k=k+1;
        Arr(k,:)=InitArr;
        InitArr(6)=InitArr(6)+1;
    end
end
你可以看一下,运行时间6分半,有点长

栀子流年5 发表于 2014-7-17 09:04

学习 学习  

弘道 发表于 2014-7-29 10:51

谢谢楼主……辛苦啦!………………

奥霸马2014 发表于 2014-8-1 11:42

看看。。。。。。
页: [1]
查看完整版本: 多维数组变一维数组,比较复杂,非诚勿看