Jump to content

ecmlj

Members
  • Posts

    1
  • Joined

  • Last visited

ecmlj's Achievements

Newbie

Newbie (1/4)

0

Reputation

  1. Bom dia no unigui tem alguma função para contar permutações possíveis de um numero ou palavra? Tenho essa função mais não está funcionando corretamente, Só funciona se os caracteres não se repetirem Exemplo : Qtda caracteres|combinação com 3 char| combinação com 4 char 123456= 120 360 112345= 72 192 112234= 42 102 112233= 24 54 111234= 34 72 111223= 19 38 111222= 8 14 function CountPermutations02(str: string; r: Integer): Int64; function Factorial(n: Integer): Int64; var I: Integer; begin Result := 1; for I := 2 to n do Result := Result * I; end; function Combination(n, r: Integer): Int64; begin Result := Factorial(n) div (Factorial(r) * Factorial(n - r)); end; var I: Integer; count: array of Integer; n: Int64; begin SetLength(count, 256); for I := 1 to Length(str) do Inc(count[Ord(str[I])]); n := 1; for I := 0 to 255 do if count[I] <> 0 then n := n * Factorial(count[I]); Result := Combination(Length(str), r) * Factorial(r) div n; end;
×
×
  • Create New...