C++ 生成每个可能的7位数字组合的算法
我试图找到一种算法来生成7个字符字符串的所有可能组合。字符串必须始终包含3个数字0-9和4个字母A-Z 例如: 1GH2G2G, 2200万日元, HGTY222 但我需要所有可能的组合。 我使用C++,但是欢迎使用伪代码。 编辑以澄清: 问题是生成以下字符集ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789的所有可能组合,该字符集的长度为7个字符,并且始终必须包含3个数字0-9和4个字母A-Z。我没有基本字符串,上面的示例只是为了说明输出应该是什么样子C++ 生成每个可能的7位数字组合的算法,c++,algorithm,math,C++,Algorithm,Math,我试图找到一种算法来生成7个字符字符串的所有可能组合。字符串必须始终包含3个数字0-9和4个字母A-Z 例如: 1GH2G2G, 2200万日元, HGTY222 但我需要所有可能的组合。 我使用C++,但是欢迎使用伪代码。 编辑以澄清: 问题是生成以下字符集ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789的所有可能组合,该字符集的长度为7个字符,并且始终必须包含3个数字0-9和4个字母A-Z。我没有基本字符串,上面的示例只是为了说明输出应该是什么样子 非常感谢您的帮助,
非常感谢您的帮助,谢谢试试这个尺码。是帕斯卡,但你会明白的
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;
你试过什么,什么不起作用?这听起来似乎不是很难,请告诉我们您尝试了什么。分别生成3个数字和4个字母,将它们放入一个字符串,然后洗牌。是的,这很容易。最难的部分是每一个组合生成一次。@user3284667关键字:词汇排列你我的朋友真了不起!现在转到C++。