多维数组 如何计算多维数组中有几个一维数组。第一维为1, 第二维为第一维乘以第二维的数,第三维为第一维乘以第二维乘以第三维上的数,第四维为第一维乘以第3维乘以第四维上的数 。。 这个公式是否可行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 LZ这个公式不可行第一维=第一维第二维=第二维第三维=第二维*第一维这样才可行否则 第二维=第一维*第二维(你这个第二维怎么来的?)同样的第三维=第一维*第二维*第三维(这个第三维又怎么来?)当然 按照等式的性质第二维=第一维*第二维 两边除以第二维 得到第一维=1 --A第三维=第一维*第二维*第三维 两边除以第三维 得到 第一维*第二维=1 --结合A 得到第二维=1依次类推,可以得到第二维以后要么都是1,要么都是0,因为0乘以什么都是0所以LZ先自己搞清楚到底是想干什么 好像明白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; }} 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各位大大 明白我的意思了吗 这里面有公式可循吗 我那个确实错了 int[][][][][][] a =new int[3][1][3][1][3];我就是把他看成横着的树 同层上的节点相等 每层上不一样 那不就是前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这个有什么意义? java 线程同步的类和非线程同步的类(api中的类)有什么区别? map中是传值还是引用 问个简单的问题:hibernate是做什么的? JAVA基础? 请教:java中如何将1970年以来的秒数转化为日期时间个 为什么会说我用了deprecated api?100分 问一个简单问题 请问一个简单的问题,我是比较丢脸了 难: 关于结果集数据量很大时候的处理问题 着急!我安装jdk1.4时,按照java网上的安装顺序进行,可执行不下去,为什么?具体见内容 关于synchronized怎么理解,synchronized锁方法和锁代码块有什么区别? java数据结构
第一维=第一维
第二维=第二维
第三维=第二维*第一维
这样才可行否则
第二维=第一维*第二维(你这个第二维怎么来的?)
同样的
第三维=第一维*第二维*第三维(这个第三维又怎么来?)当然 按照等式的性质
第二维=第一维*第二维 两边除以第二维 得到第一维=1 --A
第三维=第一维*第二维*第三维 两边除以第三维 得到 第一维*第二维=1 --结合A 得到第二维=1
依次类推,可以得到第二维以后要么都是1,要么都是0,因为0乘以什么都是0
所以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;
}
}
第2个1 根据第一个数字3 得出 3个1 3个一维数组
第3个3 这里还是3个一维数组
第4个1 这里好像有9个一维了 因为前面是3个一维 每个一维是长度是3
第5个3 这里与前面相同 还是9 不过每个一维的长度是3各位大大 明白我的意思了吗 这里面有公式可循吗 我那个确实错了
我就是把他看成横着的树 同层上的节点相等 每层上不一样
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这个有什么意义?