如果我有一个表示边长为n的立方体的数组,则数组长度为n * n * n。
例如,如果n = 4且数组长度为64,我想要一个位于多维数据集外层的索引列表。所以像0-15,16-19,20,23,24,27,28-31,32-35,36,39,40,43,44-47,48-63。
我知道这是对mod和div的一些创造性使用,但我感到困惑。
答案 0 :(得分:0)
procedure TForm1.Button1Click(Sender: TObject);
var
I, n: Integer;
begin
Memo1.Lines.Clear;
n := 4;
for I := 0 to n*n*n-1 do
begin
if (I mod n) = 0 then
Memo1.Lines.Add(I.ToString + ' X min')
else if (I mod n) = (n-1) then
Memo1.Lines.Add(I.ToString + ' X max')
else if ((I div n) mod n) = 0 then
Memo1.Lines.Add(I.ToString + ' Y min')
else if ((I div n) mod n) = (n-1) then
Memo1.Lines.Add(I.ToString + ' Y max')
else if ((I div n) div n) = 0 then
Memo1.Lines.Add(I.ToString + ' Z min')
else if ((I div n) div n) = (n-1) then
Memo1.Lines.Add(I.ToString + ' Z max')
else
Memo1.Lines.Add(I.ToString + ' ')
end;
end;
制作一个清单:
0 X min
1 Y min
2 Y min
3 X max
4 X min
5 Z min
6 Z min
7 X max
8 X min
9 Z min
10 Z min
11 X max
12 X min
13 Y max
14 Y max
15 X max
16 X min
17 Y min
18 Y min
19 X max
20 X min
21
22
23 X max
24 X min
25
26
27 X max
28 X min
29 Y max
30 Y max
31 X max
32 X min
33 Y min
34 Y min
35 X max
36 X min
37
38
39 X max
40 X min
41
42
43 X max
44 X min
45 Y max
46 Y max
47 X max
48 X min
49 Y min
50 Y min
51 X max
52 X min
53 Z max
54 Z max
55 X max
56 X min
57 Z max
58 Z max
59 X max
60 X min
61 Y max
62 Y max
63 X max