java for循环加入索引_java – 有没有办法计算嵌套for循环生成的索引?

我目前正在考虑如何存储经常访问的数据.它意味着存储在一个数组中,目前通过以下方式生成.

public static void generateData() {

int index = 0;

for(int a1 = 0; a1 < 52; a1++) {

for(int a2 = a1 + 1; a2 < 52; a2++) {

for(int a3 = a2 + 1; a3 < 52; a3++) {

for(int a4 = a3 + 1; a4 < 52; a4++) {

for(int a5 = a4 + 1; a5 < 52; a5++) {

for(int a6 = a5 + 1; a6 < 52; a6++) {

for(int a7 = a6 + 1; a7 < 52; a7++) {

data[index++] = compute(a1,a2,a3,a4,a5,a6,a7);

}

}

}

}

}

}

}

}

我现在的问题是使用a1到a7参数快速访问计算数据.我能想到的唯一方法是迭代类似于迭代时间,直到参数相同,就像这样

public static int getIndex(int i1, int i2, int i3, int i4, int i5, int i6, int i7) {

int index = 0;

for(int a1 = 0; a1 < 52; a1++) {

for(int a2 = a1 + 1; a2 < 52; a2++) {

for(int a3 = a2 + 1; a3 < 52; a3++) {

for(int a4 = a3 + 1; a4 < 52; a4++) {

for(int a5 = a4 + 1; a5 < 52; a5++) {

for(int a6 = a5 + 1; a6 < 52; a6++) {

for(int a7 = a6 + 1; a7 < 52; a7++) {

if(a1 == i1 && a2 == i2 && a3 == i3 && a4 == i4 && a5 == i5 && a6 == i6 && a7 == i7) {

return index;

} else {

index++;

}

}

}

}

}

}

}

}

throw new IllegalArgumentException();

}

然而,这种方法仅在线性时间运行,考虑到数据量,这不够快.因此,我想知道是否有任何方法可以在常数或对数时间内计算指数.

因为我的问题似乎很模糊.我正在存储每个可能的德州扑克手的所有可能结果,以进行进一步的测试.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值