我有2D二进制数组。大小:private class Receive extends AsyncTask<Void, String, Void> {
String message;
@Override
protected Void doInBackground(Void... params) {
while (true) {
try {
message = from_server.readLine();
publishProgress(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
protected void onProgressUpdate(String... messages) {
for (String message : messages) {
chatAdapter.addItem(new ChatItem((message + "\n")));
}
}
}
private class Send extends AsyncTask<String, Void, Void> {
@Override
protected Void doInBackground(String... params) {
try {
to_server.println(params[0]);
Log.d("", "" + String.valueOf(params[0] = null));
} catch (Exception e) {
Log.d("", "" + e.getMessage());
e.printStackTrace();
}
return null;
}
}
x M
例如N
x 13
数组可以如下所示:
2
是否可以说我们可以制作多少个不同的2d子阵列?
1010101010110
1010011111000
x M
数组也是子数组。
没有单词N
我认为子数组的数量是:different
是真的吗?
答案 0 :(得分:0)
在测试中
当然,对于不同大小的子矩阵的数量,它只是m x n
,因为对于每个行的长度,都有一段你可以切片的列。
但是对于更有趣的问题,你可以生成多少2d数组的排列,下面的代码显示了这一点:
permutations = []
for i in 1...m {
for j in 1...n {
// now we make all possible i x j matrices
for k in 0..<floor(m / i) + 1 {
for l in 0..<floor(n / j) + 1 {
permutations.append(input[k:k+i,l:l+j])
}
}
}
}
所以它就像:
m * n * (2m+1 + floor(m/2) + floor(m/3) + ... + floor(m / (m-1))) * (2n+1 + floor(n/2) + floor(n/3) + ... + floor(n / (n-1)))