Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 所有阵列可能性_Php_Delphi_Loops_Pascal - Fatal编程技术网

Php 所有阵列可能性

Php 所有阵列可能性,php,delphi,loops,pascal,Php,Delphi,Loops,Pascal,我有pascal代码,编程语言实际上没有任何意义: 框[1]:=14;框[2]:=2; 框[3]:=4;框[4]:=5; 框[5]:=6;框[6]:=8 我想得到所有的可能性。例如,box[1]=box[6],然后box[6]=box[1]。是的,我可以亲手写,但我想我可以通过循环使它更聪明。有什么建议吗?已经有了吗=我采用了我在维基百科中找到的第一个排列算法,并在Delphi 2009中实现了它;我希望这就是你想要的: type TIntegerArray = array of Integ

我有pascal代码,编程语言实际上没有任何意义:

框[1]:=14;框[2]:=2; 框[3]:=4;框[4]:=5; 框[5]:=6;框[6]:=8


我想得到所有的可能性。例如,box[1]=box[6],然后box[6]=box[1]。是的,我可以亲手写,但我想我可以通过循环使它更聪明。有什么建议吗?

已经有了吗=我采用了我在维基百科中找到的第一个排列算法,并在Delphi 2009中实现了它;我希望这就是你想要的:

type
  TIntegerArray = array of Integer;

procedure Permutation(K: Integer; var A: TIntegerArray);
var
  I, J: Integer;
  Tmp: Integer;

begin
  for I:= 2 to Length(A) do begin
    J:= K mod I;
    Tmp:= A[J];
    A[J]:= A[I - 1];
    A[I - 1]:= Tmp;
    K:= K div I;
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  K, I: Integer;
  A: TIntegerArray;
  S: string;

begin
  Memo1.Lines.Clear;
  for K:= 0 to 719 do begin
    A:= TIntegerArray.Create(14, 2, 4, 5, 6, 8);
    Permutation(K, A);
    S:= '';
    for I:= 0 to Length(A) - 1 do
      S:= S + Format('%3.d ', [A[I]]);
    Memo1.Lines.Add(S);
  end;
end;

因此,基本上,您有一组可以包含1或排除0的项。如果从0到2^计算项目数-1,则每个整数将是一组位,指示包含哪些项目

如果有7个项目,则在从0到127的循环中,所选项目为:

x0000000 (loop variable = 0, no items are chosen)
x0000001 (loop variable = 1, item [1] is chosen)
x0000010 (loop variable = 2, item [2] is chosen)
x0000011 (loop variable = 3, items [1] and [2] are chosen)
...
x1111111 (loop variable = 127, items [1], [2], [3], [4], [5], [6], [7] are chosen)

你所说的方框[1]=方框[6],然后方框[6]=方框[1]是什么意思?这就是一个例子。也可以是框[1]=2;框[2]=14;框[3]=6;框[5]=4等等。所有可能性。你的意思是你想要14、2、4、5、6和8的所有排列吗?那么这可能会有帮助:-1因为这个问题是作为一个编程问题而不是一个统计/排列问题提出的,作为一个编程问题,它的描述不够好,无法回答。哇。。。。。。我真不敢相信这个令人困惑的问题以前从未出现过。这真的没有那么令人困惑,但哇…这并不是我想要的,因为当一个数组的var改变时,它必须改变另一个。例如,当框[1]变为框[2]时,框[2]也必须更改为框[1],如果结果是唯一的,则可以快速删除所有具有重复值的数组。我不确定我是否在跟踪。Donator,当box[2]变为box[1]并且box[1]必须接受box[2]以前的值时,您需要的词汇是swap。你现在正在学习的初级课程更多的是关于学习主题域的词汇,而不是其他任何内容。如果没有词汇表,你将什么都听不懂,也没有人会理解你,就像今天的例子中使用可能性时,你真正的意思是排列。