如何计算多维数组中有几个一维数组。第一维为1, 第二维为第一维乘以第二维的数,第三维为第一维乘以第二维乘以第三维上的数,第四维为第一维乘以第3维乘以第四维上的数  。。  这个公式是否可行。

解决方案 »

  1.   

    LZ这个公式不可行
    第一维=第一维
    第二维=第二维
    第三维=第二维*第一维
    这样才可行否则 
    第二维=第一维*第二维(你这个第二维怎么来的?)
    同样的
    第三维=第一维*第二维*第三维(这个第三维又怎么来?)当然 按照等式的性质
    第二维=第一维*第二维 两边除以第二维 得到第一维=1 --A
    第三维=第一维*第二维*第三维 两边除以第三维 得到 第一维*第二维=1 --结合A 得到第二维=1
    依次类推,可以得到第二维以后要么都是1,要么都是0,因为0乘以什么都是0
    所以LZ先自己搞清楚到底是想干什么
      

  2.   

    好像明白LZ的意思了,就是一个不确定的多维数组,LZ想知道有几个元素,对吧
    写个递归方法统计一下就可以了
    import java.lang.reflect.*;
    public class Test {
        public static void main(String[] args) throws Throwable {
            int[][][] a = {{{},{0}}, {{1,2}, {3,4,5}}};
            System.out.println(elementCount(a));
        }    public static int elementCount(Object o) {
            int count = 0;
            if (o != null) {
                Class<?> cls = o.getClass();
                if (cls.getName().startsWith("[[")) {
                    for (int i=0; i<Array.getLength(o); i++) {
                        count += elementCount(Array.get(o, i));
                    }
                } else if (cls.isArray()) {
                    count += Array.getLength(o);
                }
            }
            return count;
        }
    }
      

  3.   

    int[][][][][][] =new int[3][1][3][1][3]是这样的  这里第1个 3 里面其实就是个1维数组  不论他多大 都是1维的  
    第2个1  根据第一个数字3   得出 3个1  3个一维数组
    第3个3  这里还是3个一维数组 
    第4个1  这里好像有9个一维了 因为前面是3个一维  每个一维是长度是3
    第5个3  这里与前面相同 还是9  不过每个一维的长度是3各位大大 明白我的意思了吗 这里面有公式可循吗  我那个确实错了 
      
      

  4.   

    int[][][][][][] a =new int[3][1][3][1][3];
    我就是把他看成横着的树  同层上的节点相等  每层上不一样
      

  5.   

    那不就是前n-1维的维数相乘吗
    a[n] = a[0]*a[1]...*a[n-1]; //其中第一维a[0]就是a[0],第二维开始=前n-1维相乘一维=3 //第一维=第一维
    二维=3 //第二维=前n-1维相乘(前n-1维只有一个就是第一维)
    三维=一维*二维=3*1=3
    四维=一维*二维*三维=3*1*3=9
    五维=一维*二维*三维*四维=3*1*3*1=9不知道LZ这个有什么意义?