1.问题起源:最近想申请几个英文商标,研究了一下,英文字母在4到7个之间最好,5个字母尤佳,所以先来输出5个字母的组合,可是想像力有限,于是想用排列组合把所有5个可能的字母组合都输出,再从中挑选几个感觉不错的,研究了半天,排列组合还挺复杂的,比如情况一:5个字母各不相同;情况二:5个中有1组重复字母(双字母);情况三:5个中有2组重复字母;情况四:有3个字母重复;其他情况:如4个5个字母重复不考虑。
所以情况一二三四所有的可能是:(可能有错误,敬请指正。),代码留待后续有空解决,大神也可在我留言中先给我贡献一些代码谢谢。
2.另一种简单的办法是生成随机数,然后按照ASCII码表输出对应的大写字母,并写入到txt文档中。
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
int main()
{
int a,b,c,d,e;
int i;
FILE *fp=NULL;
fp=fopen("D:\2.txt","w"); //D盘的2.txt文档
srand((char)time(0));
for(i=1;i<=99999;i++)//先输出9999个用着
{
a=rand()%26+65;//生成65~97之间的随机数,在ASCii表中对应的字符是A~Z
b=rand()%26+65;
c=rand()%26+65;
d=rand()%26+65;
e=rand()%26+65;
printf("%c%c%c%c%c
",a,b,c,d,e);//输出5个字母的
fprintf(fp,"%c%c%c%c%c
",a,b,c,d,e);//写入txt中
}
fclose(fp);
getchar();
}