- Сообщения
- 3,608
- Репутация
- 941
Local $a[2][2][2][2] = [[[[1 ,2], [3, 4]], [[5, 6], [7, 8]]], [[[9, 10], [11, 12]], [[13, 14], [15, 16]]]]
О! Держи +1. Спасибо. Мои размеры массива намного больше, я так, для наглядносит привел рандомные числа, мне главное шаблон который ты собственно и далkaster сказал(а):Надеюсь, ты пошутил про размерности. Если ты хочешь чтобы твой массив был размерностью 3х2х6х28 то тебе придется описать соответственно 1008 элементов. никто тебе этого тут на форуме делать не станет.
для 2х2х2х2 ниже строчка. логика тут простая. при каждом увеличении размерности считаешь что каждый элемент сам представляет собой массив размерностью на 1 ниже
Код:Local $a[2][2][2][2] = [[[[1 ,2], [3, 4]], [[5, 6], [7, 8]]], [[[9, 10], [11, 12]], [[13, 14], [15, 16]]]]
Dim $aArray1[2] = [1,2]
Dim $aArray2[2][2] = [[1,2],[1,2]]
Dim $aArray3[2][2][2] = [[[1,2],[1,2]], [[1,2],[1,2]]]
Dim $aArray4[2][2][2][2] = [[[[1,2],[1,2]],[[1,2],[1,2]]],[[[1,2],[1,2]],[[1,2],[1,2]]]]
Dim $aArray5[2][2][2][2][2] = [[[[[1,2],[1,2]],[[1,2],[1,2]]],[[[1,2],[1,2]],[[1,2],[1,2]]]],[[[[1,2],[1,2]],[[1,2],[1,2]]],[[[1,2],[1,2]],[[1,2],[1,2]]]]]
И тибе +1SyDr сказал(а):4-5-мерные массивы? Жесть
...
OffTopic:
Пока писал - уже ответили. Ну да ладно.
А для чего такие массивы?
Использование массивов размерностью больше 2 не рекомендуется. всегда нужно искать другие способы реализации алгоритма ;)Belfigor сказал(а):Чтобы в For...Next и прочих циклах гонять их табунами удобно было![]()
Ну и в принципе освоить способ не помешает, интересно же как оно работать будет![]()
интересный такой алгоритм с многомерным массивом без самого массива ;DBelfigor сказал(а):О сложности алгоритма тут вопрос не встает, он уже в принципе продуман![]()
Dim $var[5][2][62] = [[["Adin","Dva","Tri","4itiri","Pijat"],["",""]], [[-9,-9,-9,-8,-8,-6,-6,-4,-4,-1, 0, 2, 4, 7, 9, 11, 14, 16, 19, 22, 26, 29, 32, 35, 39, 42, 46, 50, 54, 56, 61, 64, 68, 71, 74, 78, 82, 85, 88, 91, 95, 98,100,103,106,108,111,113,115,117,119,120,122,123,123,123,125,125,126,126,125], [ 59,62,66,69,73,76,80,83,87,89,93,96,99,101,104,107,109,112,114,116,117,119,120,122,123,124,124,126,125,125,125,126,125,124,124,122,122,120,118,117,116,114,111,109,107,104,102, 99, 96, 93, 90, 86, 83, 80, 80, 76, 73, 69, 66, 62, 59]]]
Да мне уже не принципиально, просто продублировать серию чисел в другие уровни, немогу понять как надо сформулировать эту строку для всех 5 уровней, мне это уже больше из любопытства узнать охотаSyDr сказал(а):Естественно. Это примерно в 16 раз труднее, чем с обычными массивами ;D
Какую информацию должен хранить данный массив? Может что-то не так понял?
[0][0][0]
For $i = 1 To 4
For $k = 1 To 1
For $j = 1 To 61
MsgBox(4096, "", "This Is:" & @CRLF $i & " " & $k & " " & $j & @CRLF & $a[$i][$k][$j])
Next
Next
Next
Dim $var[5][2][62] = [[["Adin","Dva","Tri","4itiri","Pijat"],["",""]], [[-9,-9,-9,-8,-8,-6,-6,-4,-4,-1, 0, 2, 4, 7, 9, 11, 14, 16, 19, 22, 26, 29, 32, 35, 39, 42, 46, 50, 54, 56, 61, 64, 68, 71, 74, 78, 82, 85, 88, 91, 95, 98,100,103,106,108,111,113,115,117,119,120,122,123,123,123,125,125,126,126,125], [ 59,62,66,69,73,76,80,83,87,89,93,96,99,101,104,107,109,112,114,116,117,119,120,122,123,124,124,126,125,125,125,126,125,124,124,122,122,120,118,117,116,114,111,109,107,104,102, 99, 96, 93, 90, 86, 83, 80, 80, 76, 73, 69, 66, 62, 59]]]
Dim $Var[3][2][4] = [[['000', '001', '002', '003'], ['010', '011', '012', '013']], [['100', '101', '102', '103'], ['110', '111', '112', '113']], [['200', '201', '202', '203'], ['210', '211', '212', '213']]]
For $i = 0 To UBound($Var, 1) - 1
For $j = 0 To UBound($Var, 2) - 1
For $k = 0 To UBound($Var, 3) - 1
ConsoleWrite(($i & $j & $k) & ' => ' & $Var[$i][$j][$k] & @CR)
Next
Next
Next
Dim $A0[5][62] = [[...], [...]]
Dim $A1[2][60] = [[...], [...]]
Dim $A2[9] = [...]
Dim $A3[2][2] = [[...], [...]]
Dim $A4[2][2][2] = [[[...], [...]], [[...], [...]]]
Dim $Var[5] = [$A0, $A1, $A2, $A3, $A4]
Хороший пример.Вот простой пример
http://www.autoitscript.com/autoit3/docs/faq.htm#15 сказал(а):Arrays: A maximum of 64 dimensions and/or a total of 16 million elements
CreatoR сказал(а):...по сложности, она приравнивается наверное только с темой регулярных выражении...
Dim $arr[0][0]=["001", "002", "003", "004", "005", "006", "007"]
Dim $arr[0][1]=["011", "012", "013", "014", "015", "016", "017"]
Dim $var[5][2][62] = [[["Adin","Dva","Tri","4itiri","Pijat"],["",""]], [[-9,-9,-9,-8,-8,-6,-6,-4,-4,-1, 0, 2, 4, 7, 9, 11, 14, 16, 19, 22, 26, 29, 32, 35, 39, 42, 46, 50, 54, 56, 61, 64, 68, 71, 74, 78, 82, 85, 88, 91, 95, 98,100,103,106,108,111,113,115,117,119,120,122,123,123,123,125,125,126,126,125], [ 59,62,66,69,73,76,80,83,87,89,93,96,99,101,104,107,109,112,114,116,117,119,120,122,123,124,124,126,125,125,125,126,125,124,124,122,122,120,118,117,116,114,111,109,107,104,102, 99, 96, 93, 90, 86, 83, 80, 80, 76, 73, 69, 66, 62, 59]]]
Dim $var[5][2][62]
Dim $var[0][0]=["Adin","Dva","Tri","4itiri","Pijat"]
Dim $var[0][1]=["",""]
Dim $var[1][0]=[-9,-9,-9,-8,-8,-6,-6,-4,-4,-1, 0, 2, 4, 7, 9, 11, 14, 16, 19, 22, 26, 29, 32, 35, 39, 42, 46, 50, 54, 56, 61, 64, 68, 71, 74, 78, 82, 85, 88, 91, 95, 98,100,103,106,108,111,113,115,117,119,120,122,123,123,123,125,125,126,126,125]
Dim $var[1][1]=[59,62,66,69,73,76,80,83,87,89,93,96,99,101,104,107,109,112,114,116,117,119,120,122,123,124,124,126,125,125,125,126,125,124,124,122,122,120,118,117,116,114,111,109,107,104,102, 99, 96, 93, 90, 86, 83, 80, 80, 76, 73, 69, 66, 62, 59]
Dim $arr0000=[...]
Dim $arr0001=[...]
;...
Dim $arr0005=[...]
Dim $arr0100=[...]
;...
Dim $arr0405=[...]
;второй уровень
Dim $arr00=[$arr0000, $arr0001, $arr0002, $arr0003, $arr0004, $arr0005, $arr0006]
;Dim $arrN=[$arrN00, ... , $arrN06]
;и так до
Dim $arr05=[...]
;третий уровень
Dim $arr=[$arr00, ... , $arr05]