例如,我有一个像这样的矩阵:
|1 2 3|
|4 5 6|
|7 8 9|
Run Code Online (Sandbox Code Playgroud)
我需要它转换成这样的矩阵:
|1 4 7|
|2 5 8|
|3 6 9|
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最佳和最佳方式是什么?
我正在编写C代码,我想堆分配512*256字节.为了方便起见,我希望能够使用语法数组[a] [b]访问元素; 没有算术来找到正确的索引.
我在网上看到的每个教程都告诉我要创建一个指针数组,指向我在数组中想要的行数组.这意味着每个子数组都需要单独进行malloc和free.我感兴趣的,只需要调用一次malloc和一个呼叫免费的解决方案.(因此,所有的元素是连续的),我认为这是可能的,因为我不会构建一个交错的数组.
如果有人可以分享声明这样一个数组的语法,我将不胜感激.
我有一个18个值的数组:
$array = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r');
Run Code Online (Sandbox Code Playgroud)
我想将这个数组拆分成12个不同的数组,所以它应该是这样的:
array(
0 => array('a', 'b'),
1 => array('c', 'd'),
2 => array('e', 'f'),
3 => array('g', 'h'),
4 => array('i', 'j'),
5 => array('k', 'l'),
6 => array('m'),
7 => array('n'),
8 => array('o'),
9 => array('p'),
10 => array('q'),
11 => array('r')
)
Run Code Online (Sandbox Code Playgroud)
我的功能似乎不起作用
function array_split($array, $parts){
return array_chunk($array, ceil(count($array) / $parts));
}
$result = array_split($array, 12); …Run Code Online (Sandbox Code Playgroud) 我试图通过计算两个元素的每个和,相对于主对角线相反,优化每个元素的索引和的方形二维Java数组的填充.但是,代替加速或至少相当的性能,我的代码速度慢了23(!)倍.
我的代码:
@State(Scope.Benchmark)
@BenchmarkMode(Mode.AverageTime)
@OperationsPerInvocation(ArrayFill.N * ArrayFill.N)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public class ArrayFill {
public static final int N = 8189;
public int[][] g;
@Setup
public void setup() { g = new int[N][N]; }
@GenerateMicroBenchmark
public int simple(ArrayFill state) {
int[][] g = state.g;
for(int i = 0; i < g.length; i++) {
for(int j = 0; j < g[i].length; j++) {
g[i][j] = i + j;
}
}
return g[g.length - 1][g[g.length - 1].length - 1];
} …Run Code Online (Sandbox Code Playgroud) 有没有一种简单的方法可以找到二维数组中元素的邻居(即元素周围的八个元素)?只需在不同的组合中减去和添加索引,如下所示:
array[i-1][i]
array[i-1][i-1]
array[i][i-1]
array[i+1][i]
Run Code Online (Sandbox Code Playgroud)
... 等等.
在Python中创建2D数组的最佳方法是什么?
我想要的是存储这样的值:
X , Y , Z
Run Code Online (Sandbox Code Playgroud)
这样我就可以访问数据,X[2],Y[2],Z[2]或者X[n],Y[n],Z[n]在哪里n可变.我不知道一开始n会有多大,所以我想在最后添加值.
假设我们有Java代码:
Object arr = Array.newInstance(Array.class, 5);
Run Code Online (Sandbox Code Playgroud)
那会跑吗?作为进一步的说明,如果我们尝试这样的事情怎么办:
Object arr1 = Array.newInstance(Array.class, 2);
Object arr2 = Array.newInstance(String.class, 4);
Object arr3 = Array.newInstance(String.class, 4);
Array.set(arr1, 0, arr2);
Array.set(arr1, 1, arr3);
Run Code Online (Sandbox Code Playgroud)
那么arr1会是一个2D数组,相当于:
String[2][4] arr1;
Run Code Online (Sandbox Code Playgroud)
怎么样:如果我们在运行时之前不知道这个数组的尺寸怎么办?
编辑:如果这有帮助(我相信它会...)我们试图从表单的字符串解析未知维度的数组
[value1, value2, ...]
Run Code Online (Sandbox Code Playgroud)
要么
[ [value11, value12, ...] [value21, value22, ...] ...]
Run Code Online (Sandbox Code Playgroud)
等等
编辑2:如果有人像我一样愚蠢尝试这个垃圾,这里是一个至少编译和运行的版本.逻辑是否合理完全是另一个问题......
Object arr1 = Array.newInstance(Object.class, x);
Object arr11 = Array.newInstance(Object.class, y);
Object arr12 = Array.newInstance(Object.class, y);
...
Object arr1x = Array.newInstance(Object.class, y);
Array.set(arr1, 0, arr11);
Array.set(arr1, 1, arr12);
...
Array.set(arr1, x-1, arr1x);
Run Code Online (Sandbox Code Playgroud)
等等.它只需要是一个巨大的嵌套对象数组
如何比较多维数组?只是真/假.
double[,] data1 = new double[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
double[,] data2 = new double[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
//bool compare = data1.SequenceEqual(data2);
Run Code Online (Sandbox Code Playgroud)
有没有办法比较2d数组像1d数组?
data1.SequenceEqual(data2);
Run Code Online (Sandbox Code Playgroud)
我必须比较每一秒,所以最简单的方法将是伟大的.非常感谢.
如何在Rust中创建一个空的可变二维数组?
这是我到目前为止所尝试的:
let mut state[[u8 * 4] * 4];
Run Code Online (Sandbox Code Playgroud)
这会产生错误
error: expected one of `:`, `;`, `=`, or `@`, found `[`
--> src/main.rs:2:18
|
2 | let mut state[[u8 * 4] * 4];
| ^ expected one of `:`, `;`, `=`, or `@` here
Run Code Online (Sandbox Code Playgroud) 我有一个带有type属性的多维关联数组.它看起来像这样:
$data = array(
array( "name" => "SomeName", "type" => "A"),
array( "name" => "SomeName", "type" => "A"),
array( "name" => "SomeName", "type" => "A"),
array( "name" => "SomeName", "type" => "A"),
array( "name" => "SomeName", "type" => "A"),
array( "name" => "SomeName", "type" => "B"),
array( "name" => "SomeName", "type" => "B"),
array( "name" => "SomeName", "type" => "B"),
array( "name" => "SomeName", "type" => "C"),
array( "name" => "SomeName", "type" => "C")
);
Run Code Online (Sandbox Code Playgroud)
我想重新排列它以使项目更均匀地分布(如果可能的话,重复类型的数量最少).它应该如下所示:
array(
array( …Run Code Online (Sandbox Code Playgroud)