AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Permutation (mögliche Kombinationen)
Thema durchsuchen
Ansicht
Themen-Optionen

Permutation (mögliche Kombinationen)

Ein Thema von juniorA · begonnen am 16. Jun 2014 · letzter Beitrag vom 20. Jun 2014
 
juniorA

Registriert seit: 14. Sep 2011
112 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Permutation (mögliche Kombinationen)

  Alt 16. Jun 2014, 17:18
Ich habe mir jetzt einmal einen Teil des Codes geladen und angepasst. Das Problem mit der Laufzeit bei Kombinationen mit mehr als 6 Zeichen ist da. Ich habe aber noch eine anderes Problem und zwar gibt es bei mehr als 11 Zeichen einen Integerüberlauf.

Delphi-Quellcode:
procedure Form1.Button1Click(Sender: TObject);
{$APPTYPE CONSOLE}

const anz_c : integer = 12;

type
  TItem = char;
  TArray = array[0..12] of TItem;


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

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

var
  A : TArray;
  I, K, Count, anz : Integer;
  S, S1, S2 : ShortString;
  Source : TArray;

begin
  for I := 0 to anz_c do source[i] := chr(65+i);

  Count:= 1;
  anz := 0;
  I:= Length(A);
  while I > 1 do
  begin
    Count:= Count * I;
    Dec(I);
  end;

  S:= '';
  for K:= 0 to Count - 1 do
  begin
    A:= Source;
    Permutation(K, A);
    S1:= '';

    for I:= 0 to anz_c do
    begin
      s2 := A[I];
      S1:= S1 + S2;
    end;

    inc(anz);
    S:= S + ' ** ' + S1;
    if Length(S) > 40 then
    begin
      Writeln(S);
      S:= '';
    end;
  end;

  if Length(S) > 0 then Writeln(S);
  writeln('Anz : ', anz);
  Readln;

end;
Ideen gesucht
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz