生成7位数的每种可能组合的算法

时间:2015-02-02 00:57:32

标签: c++ algorithm math

我试图找到一种算法来生成7个字符串的每个可能组合。该字符串必须始终包含3个数字(0-9)和4个字母(A-Z)

实施例: 1GH2G2G, 22JUYT1, HGTY222

但我需要这些可能的组合。 我使用的是c ++但欢迎使用伪代码。

编辑(澄清): 问题是产生以下charset的所有可能组合" ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"这是7个字符长,并且总是必须包含3个数字(0-9)和4个字母(A-Z)。我没有开始的基本字符串,上面的例子只是为了显示输出应该是什么样的。

非常感谢任何帮助,谢谢

1 个答案:

答案 0 :(得分:-2)

尝试使用此尺寸。这是帕斯卡尔,但你会明白的。

procedure GenerateCodes;
begin
  GenerateRest(7, 4, 3, '');
end;

procedure GenerateRest(
   CharsLeft, LettersLeft, DigitsLeft: Integer; 
   const Prefix: string);
var
  c: char;
begin
  if CharsLeft  = 0 then begin
    write(Prefix,' ');
    exit;
  end;

  if LettersLeft > 0 then
    for c := 'A' to 'Z' do
      GenerateRest(CharsLeft - 1, LettersLeft - 1, DigitsLeft, Prefix + c);

  if DigitsLeft > 0 then
    for c := '0' to '9' do
      GenerateRest(CharsLeft - 1, LettersLeft, DigitsLeft - 1, Prefix + c);
end;