数组问题(100分)

  • 主题发起人 主题发起人 pengfeiyan
  • 开始时间 开始时间
P

pengfeiyan

Unregistered / Unconfirmed
GUEST, unregistred user!
var aa:array [0..11] of byte,输出aa所有可能的值(理论上是256的12次方)?怎么写?在线等
 
var
frmMain: TfrmMain;
aa:array [0..2] of byte=(0,1,2)
implementation

注意定义的位置,只能放在implementation之上,定义为全局变量
 
所有可能的值不就是 Byte类型的取值范围吗? -$FF ~$FF
楼主问题有点怪怪的哦
 
理论上是有256的12次方,怎么列出这些数据?
 
var aa:array [0..11] of byte;
i,j:byte;
begin
for i:=0 to 11 do
begin
for j:=0 to 255 do
begin
aa:=j;
Memo1.lines.add(format('[%d] [%d] [%d] [%d] [%d] [%d] [%d] [%d] [%d] [%d] [%d] [%d]',
[aa[0],aa[1],aa[2],aa[3],aa[4],aa[5],aa[6],aa[7],aa[8],aa[9],aa[10],aa[11]]));
end;我的想法,但不行,麻烦各位指点一下,最主要是这个循环不知道怎么弄
 
是不是就是得出12个在byte范围内值??
那么这些值由什么要求
 
理论上其实是0~2^96,这么多数据全部列出来是不可能的。但是,如果你构造了一个长整数,能够表达2^96,那么就很简单了。

我认为做这个,还不如问问楼主想要什么?做了这个算法是为了什么?
 
穷举破解
 
256取12个数的全排列

for i0:=0 to 255 do
begin
aa[0]:=i0;
for i1:=0 to 255 do
if i1<>i0 then
begin
aa[1]:=i1;
for i2:=0 to 255 do
if not (i2 in [i0,i1]) then
begin
aa2:=i2;
for i3:=0 to 255 do
......
end;
end;
Memo1.lines.add(format('[%d] [%d] [%d] [%d] [%d] [%d] [%d] [%d] [%d] [%d] [%d] [%d]',
[aa[0],aa[1],aa[2],aa[3],aa[4],aa[5],aa[6],aa[7],aa[8],aa[9],aa[10],aa[11]]));
end;
 
有没有更好的方法,如果是120那不晕倒
 
接受答案了.
 
后退
顶部