计数问题。。。
6个英文字母可构成多少个字符串使得它们包含(只考虑小写)
(1)恰好1个元音
(2)恰好2个元音
(3)至少一个元音
(4)至少2个元音
分别做答,有解释。
问题点数:100、回复次数:12Top
1 楼dcyu(Dd)回复于 2003-06-04 10:31:04 得分 70
(1)C(6,1)*5*21^5
(2)C(6,2)*5^2*21^4
(3)26^6-21^6
(4)26^6-21^6-C(6,1)*5*21^5Top
2 楼boylez(boylez)回复于 2003-06-04 10:35:29 得分 0
1:5*p(5,21)*6
2:c(2,5)*p(4,21)*c(2,6)
3:p(6,26)-p(6,20)
4:3的答案再减1的答案Top
3 楼mmmcd(超超)回复于 2003-06-04 12:49:53 得分 0
我翻出了一个去年编的,疯狂穷举表达式和操作数的程序:
#include <stdio.h>
FILE *fp;
int list[20],error=0,answer=0;
char op[]={'*','-','+','/'};
int n,num[11];
struct a{int n;int m;}
numSequense[11];
float result,TreeValue;
typedef struct Tnode{
char op;
int num;
struct Tnode *lc;
struct Tnode *rc;}Tnode,*Tree;
Tree p[10];
void output();
void CreateNumber();
void DeleteNumber();
void CNS();
float Value();
int key1(int a,int b)
{int i;
if(a==0&&b==0)return(1);
for(i=0;i<b;i++)if(a==numSequense[i].m)return(0);
return(1);
}
void CNS(int k)
{int i;
if(k<n+1)
for(i=0;i<n+1;i++)
{if(key1(i,k)){
numSequense[k].n=num[i];numSequense[k].m=i;
CNS(k+1);
numSequense[k].n=0;numSequense[k].m=0;}}
else CreateNumber();
}
void CreateOperator(int k)
{int j;
if(k<n)for(j=0;j<4;j++)
{p[k]->op=op[j];CreateOperator(k+1);}
else {CNS(0);error=0;}
}
void CreateNumber()
{int i,j=0;
for(i=0;i<n;i++)
{if(!p[i]->lc)
{p[i]->lc=(Tree)malloc(sizeof(Tnode));
p[i]->lc->op=' ';
p[i]->lc->rc=p[i]->lc->lc=NULL;
p[i]->lc->num=numSequense[j++].n;}
if(!p[i]->rc)
{p[i]->rc=(Tree)malloc(sizeof(Tnode));
p[i]->rc->num=numSequense[j++].n;
p[i]->rc->op=' ';
p[i]->rc->rc=p[i]->rc->lc=NULL;}
}
TreeValue=Value(p[0]);
if(error==0&&TreeValue==result)
{output(p[0]);fprintf(fp,"=%.2f\n",TreeValue);answer=1;}
DeleteNumber();
}
void DeleteNumber()
{int i;
for(i=0;i<n;i++)
{if(p[i]->lc)if(p[i]->lc->op==' ')
{free(p[i]->lc);p[i]->lc=NULL;}
if(p[i]->rc)if(p[i]->rc->op==' ')
{free(p[i]->rc);p[i]->rc=NULL;}
}
}
float Calculate(float a,char c,float b)
{if(c=='+')return(a+b);
if(c=='-')return(a-b);
if(c=='*')return(a*b);
if(c=='/')if(b!=0.0)return(a/b);else{error=1;return(0.0);}
}
float Value(Tree T)
{if(T->op==' ')return(T->num);
else return(Calculate(Value(T->lc),T->op,Value(T->rc)));
}
void output(Tree T)
{if(T->op!=' ')
{if(T->lc)
if((T->op=='*'||T->op=='/')&&(T->lc->op=='+'||T->lc->op=='-'))
{fprintf(fp,"(");output(T->lc);fprintf(fp,")");}else output(T->lc);
fprintf(fp,"%c",T->op);
if(T->rc)
if((T->op=='*'||T->op=='/')&&(T->rc->op=='+'||T->rc->op=='-')||((T->op=='/')&&
(T->rc->op!=' '))||(T->op=='-'&&(T->rc->op=='+'||T->rc->op=='-')))
{fprintf(fp,"(");output(T->rc);fprintf(fp,")");}else output(T->rc);
}
else fprintf(fp,"%d",T->num);
}
void CreateTree()
{int i,j=0,k=0;
for(i=0;i<2*n;i++)
{if(list[i]==1){
p[j]=(Tree)malloc(sizeof(Tnode));
p[j]->op=' ';p[j]->num=0;
p[j]->rc=p[j]->lc=NULL;
if(i>0){if(list[i-1]==1)p[k]->lc=p[j];
else p[k]->rc=p[j];
k=j;j++;}else j++;}
else if(list[i-1]==0)k--;
}
CreateOperator(0);
}
main(){
int i,i0,i1,j,step,k=0;
fp=fopen("out.txt","w");
do {printf("please input the total number of the members(2--7):");
scanf("%d",&n);}
while(n<2||n>7);
printf("The result you want(number):");scanf("%f",&result);
printf("Please input %d numbers:",n);
for(i=0;i<n;i++){scanf("%d",&num[i]);numSequense[i].n=numSequense[i].m=0;}
n--;i=0;i1=0;i0=0;step=1;
while(i>=0){
list[i]=step;
if(list[i]==1)i1++;
else if(list[i]==0) i0++;
if(i1==n){
for(j=i+1;j<2*n;j++){
list[j]=0;
}
k++;
if(k<=n)CreateTree();
step=list[i]-1;
if(list[i]==1)i1--;
else i0--;
}
else if(i1<i0){
while(list[i]==0){
i--;
if(list[i+1]==1)i1--;
else i0--;}
step=list[i]-1;
i1--;
}else {
i++;
step=1;
}
}
if(!answer)printf("Sorry,no answer.\n");
else printf("OK!!\n");
}
Top
4 楼mmmcd(超超)回复于 2003-06-04 12:51:14 得分 0
结果:(输入6 259 1 2 3 4 5 7,运行13秒,很多重复)
(4*5*2-3)*7*1=259.00
(5*4*2-3)*7*1=259.00
(2*5*4-3)*7*1=259.00
(5*2*4-3)*7*1=259.00
(2*4*5-3)*7*1=259.00
(4*2*5-3)*7*1=259.00
(4*5*2-3)*1*7=259.00
(5*4*2-3)*1*7=259.00
(2*5*4-3)*1*7=259.00
(5*2*4-3)*1*7=259.00
(2*4*5-3)*1*7=259.00
(4*2*5-3)*1*7=259.00
((3+4)*5+2)*7*1=259.00
((4+3)*5+2)*7*1=259.00
((3+4)*5+2)*1*7=259.00
((4+3)*5+2)*1*7=259.00
(4*5*2*1-3)*7=259.00
(5*4*2*1-3)*7=259.00
(2*5*4*1-3)*7=259.00
(5*2*4*1-3)*7=259.00
(2*4*5*1-3)*7=259.00
(4*2*5*1-3)*7=259.00
(4*5*1*2-3)*7=259.00
(5*4*1*2-3)*7=259.00
(1*5*4*2-3)*7=259.00
(5*1*4*2-3)*7=259.00
(1*4*5*2-3)*7=259.00
(4*1*5*2-3)*7=259.00
(2*5*1*4-3)*7=259.00
(5*2*1*4-3)*7=259.00
(1*5*2*4-3)*7=259.00
(5*1*2*4-3)*7=259.00
(1*2*5*4-3)*7=259.00
(2*1*5*4-3)*7=259.00
(2*4*1*5-3)*7=259.00
(4*2*1*5-3)*7=259.00
(1*4*2*5-3)*7=259.00
(4*1*2*5-3)*7=259.00
(1*2*4*5-3)*7=259.00
(2*1*4*5-3)*7=259.00
(5/1*4*2-3)*7=259.00
(4/1*5*2-3)*7=259.00
(5/1*2*4-3)*7=259.00
(2/1*5*4-3)*7=259.00
(4/1*2*5-3)*7=259.00
(2/1*4*5-3)*7=259.00
((3*5+4)*2-1)*7=259.00
((5*3+4)*2-1)*7=259.00
(4*5/1*2-3)*7=259.00
(5*4/1*2-3)*7=259.00
(2*5/1*4-3)*7=259.00
(5*2/1*4-3)*7=259.00
(2*4/1*5-3)*7=259.00
(4*2/1*5-3)*7=259.00
(4*5*2/1-3)*7=259.00
(5*4*2/1-3)*7=259.00
(2*5*4/1-3)*7=259.00
(5*2*4/1-3)*7=259.00
(2*4*5/1-3)*7=259.00
(4*2*5/1-3)*7=259.00
((5-2)*4*3+1)*7=259.00
((5-2)*3*4+1)*7=259.00
((3+4)*5*1+2)*7=259.00
((4+3)*5*1+2)*7=259.00
((3+4)*1*5+2)*7=259.00
((4+3)*1*5+2)*7=259.00
((1+3)*4*2+5)*7=259.00
((3+1)*4*2+5)*7=259.00
((1+3)*2*4+5)*7=259.00
((3+1)*2*4+5)*7=259.00
((1*4+3)*5+2)*7=259.00
((4*1+3)*5+2)*7=259.00
((1*3+4)*5+2)*7=259.00
((3*1+4)*5+2)*7=259.00
((2*5+1)*3+4)*7=259.00
((5*2+1)*3+4)*7=259.00
((4/1+3)*5+2)*7=259.00
((3/1+4)*5+2)*7=259.00
((3+4)/1*5+2)*7=259.00
((4+3)/1*5+2)*7=259.00
((3+4)*5/1+2)*7=259.00
((4+3)*5/1+2)*7=259.00
(4*5*2-3)/1*7=259.00
(5*4*2-3)/1*7=259.00
(2*5*4-3)/1*7=259.00
(5*2*4-3)/1*7=259.00
(2*4*5-3)/1*7=259.00
(4*2*5-3)/1*7=259.00
((3+4)*5+2)/1*7=259.00
((4+3)*5+2)/1*7=259.00
(2*3+7)*5*4-1=259.00
(3*2+7)*5*4-1=259.00
(2*3+7)*4*5-1=259.00
(3*2+7)*4*5-1=259.00
(4*5*2-3)*7/1=259.00
(5*4*2-3)*7/1=259.00
(2*5*4-3)*7/1=259.00
(5*2*4-3)*7/1=259.00
(2*4*5-3)*7/1=259.00
(4*2*5-3)*7/1=259.00
((3+4)*5+2)*7/1=259.00
((4+3)*5+2)*7/1=259.00
(2*4*5-3)*7*1=259.00
(2*5*4-3)*7*1=259.00
(4*2*5-3)*7*1=259.00
(4*5*2-3)*7*1=259.00
(5*2*4-3)*7*1=259.00
(5*4*2-3)*7*1=259.00
(2*4*5-3)*1*7=259.00
(2*5*4-3)*1*7=259.00
(4*2*5-3)*1*7=259.00
(4*5*2-3)*1*7=259.00
(5*2*4-3)*1*7=259.00
(5*4*2-3)*1*7=259.00
(5*(3+4)+2)*7*1=259.00
(5*(4+3)+2)*7*1=259.00
(5*(3+4)+2)*1*7=259.00
(5*(4+3)+2)*1*7=259.00
(2*4*5*1-3)*7=259.00
(2*5*4*1-3)*7=259.00
(4*2*5*1-3)*7=259.00
(4*5*2*1-3)*7=259.00
(5*2*4*1-3)*7=259.00
(5*4*2*1-3)*7=259.00
(1*4*5*2-3)*7=259.00
(1*5*4*2-3)*7=259.00
(4*1*5*2-3)*7=259.00
(4*5*1*2-3)*7=259.00
(5*1*4*2-3)*7=259.00
(5*4*1*2-3)*7=259.00
(1*2*5*4-3)*7=259.00
(1*5*2*4-3)*7=259.00
(2*1*5*4-3)*7=259.00
(2*5*1*4-3)*7=259.00
(5*1*2*4-3)*7=259.00
(5*2*1*4-3)*7=259.00
(1*2*4*5-3)*7=259.00
(1*4*2*5-3)*7=259.00
(2*1*4*5-3)*7=259.00
(2*4*1*5-3)*7=259.00
(4*1*2*5-3)*7=259.00
(4*2*1*5-3)*7=259.00
(4*5/1*2-3)*7=259.00
(5*4/1*2-3)*7=259.00
(2*5/1*4-3)*7=259.00
(5*2/1*4-3)*7=259.00
(2*4/1*5-3)*7=259.00
(4*2/1*5-3)*7=259.00
((4+3*5)*2-1)*7=259.00
((4+5*3)*2-1)*7=259.00
(4/(1/5)*2-3)*7=259.00
(5/(1/4)*2-3)*7=259.00
(2/(1/5)*4-3)*7=259.00
(5/(1/2)*4-3)*7=259.00
(2/(1/4)*5-3)*7=259.00
(4/(1/2)*5-3)*7=259.00
(2*4*5/1-3)*7=259.00
(2*5*4/1-3)*7=259.00
(4*2*5/1-3)*7=259.00
(4*5*2/1-3)*7=259.00
(5*2*4/1-3)*7=259.00
(5*4*2/1-3)*7=259.00
(4*(5-2)*3+1)*7=259.00
(3*(5-2)*4+1)*7=259.00
(5*(3+4)*1+2)*7=259.00
(5*(4+3)*1+2)*7=259.00
Top
5 楼mmmcd(超超)回复于 2003-06-04 12:51:45 得分 0
(1*(3+4)*5+2)*7=259.00
(1*(4+3)*5+2)*7=259.00
(4*(1+3)*2+5)*7=259.00
(4*(3+1)*2+5)*7=259.00
(2*(1+3)*4+5)*7=259.00
(2*(3+1)*4+5)*7=259.00
((3+1*4)*5+2)*7=259.00
((3+4*1)*5+2)*7=259.00
((4+1*3)*5+2)*7=259.00
((4+3*1)*5+2)*7=259.00
((1+2*5)*3+4)*7=259.00
((1+5*2)*3+4)*7=259.00
((3+4/1)*5+2)*7=259.00
((4+3/1)*5+2)*7=259.00
(5*(3+4)/1+2)*7=259.00
(5*(4+3)/1+2)*7=259.00
(2*4*5-3)/1*7=259.00
(2*5*4-3)/1*7=259.00
(4*2*5-3)/1*7=259.00
(4*5*2-3)/1*7=259.00
(5*2*4-3)/1*7=259.00
(5*4*2-3)/1*7=259.00
(5*(3+4)+2)/1*7=259.00
(5*(4+3)+2)/1*7=259.00
(7+2*3)*5*4-1=259.00
(7+3*2)*5*4-1=259.00
(7+2*3)*4*5-1=259.00
(7+3*2)*4*5-1=259.00
(2*4*5-3)*7/1=259.00
(2*5*4-3)*7/1=259.00
(4*2*5-3)*7/1=259.00
(4*5*2-3)*7/1=259.00
(5*2*4-3)*7/1=259.00
(5*4*2-3)*7/1=259.00
(5*(3+4)+2)*7/1=259.00
(5*(4+3)+2)*7/1=259.00
(1*2*4*5-3)*7=259.00
(1*2*5*4-3)*7=259.00
(1*4*2*5-3)*7=259.00
(1*4*5*2-3)*7=259.00
(1*5*2*4-3)*7=259.00
(1*5*4*2-3)*7=259.00
(2*1*4*5-3)*7=259.00
(2*1*5*4-3)*7=259.00
(2*4*1*5-3)*7=259.00
(2*4*5*1-3)*7=259.00
(2*5*1*4-3)*7=259.00
(2*5*4*1-3)*7=259.00
(4*1*2*5-3)*7=259.00
(4*1*5*2-3)*7=259.00
(4*2*1*5-3)*7=259.00
(4*2*5*1-3)*7=259.00
(4*5*1*2-3)*7=259.00
(4*5*2*1-3)*7=259.00
(5*1*2*4-3)*7=259.00
(5*1*4*2-3)*7=259.00
(5*2*1*4-3)*7=259.00
(5*2*4*1-3)*7=259.00
(5*4*1*2-3)*7=259.00
(5*4*2*1-3)*7=259.00
(2*4*5/1-3)*7=259.00
(2*5*4/1-3)*7=259.00
(4*2*5/1-3)*7=259.00
(4*5*2/1-3)*7=259.00
(5*2*4/1-3)*7=259.00
(5*4*2/1-3)*7=259.00
(2/1*4*5-3)*7=259.00
(2/1*5*4-3)*7=259.00
(4/1*2*5-3)*7=259.00
(4/1*5*2-3)*7=259.00
(5/1*2*4-3)*7=259.00
(5/1*4*2-3)*7=259.00
(2*4/(1/5)-3)*7=259.00
(2*5/(1/4)-3)*7=259.00
(4*2/(1/5)-3)*7=259.00
(4*5/(1/2)-3)*7=259.00
(5*2/(1/4)-3)*7=259.00
(5*4/(1/2)-3)*7=259.00
(3*4*(5-2)+1)*7=259.00
(4*3*(5-2)+1)*7=259.00
(1*5*(3+4)+2)*7=259.00
(1*5*(4+3)+2)*7=259.00
(5*1*(3+4)+2)*7=259.00
(5*1*(4+3)+2)*7=259.00
(2*4*(1+3)+5)*7=259.00
(2*4*(3+1)+5)*7=259.00
(4*2*(1+3)+5)*7=259.00
(4*2*(3+1)+5)*7=259.00
((5-2)*3*4+1)*7=259.00
((5-2)*4*3+1)*7=259.00
((3+4)*1*5+2)*7=259.00
((3+4)*5*1+2)*7=259.00
((4+3)*1*5+2)*7=259.00
((4+3)*5*1+2)*7=259.00
((1+3)*2*4+5)*7=259.00
((1+3)*4*2+5)*7=259.00
((3+1)*2*4+5)*7=259.00
((3+1)*4*2+5)*7=259.00
((3+4)*5/1+2)*7=259.00
((4+3)*5/1+2)*7=259.00
(5/1*(3+4)+2)*7=259.00
(5/1*(4+3)+2)*7=259.00
((3+4)/(1/5)+2)*7=259.00
((4+3)/(1/5)+2)*7=259.00
(5*7+2)*(3+4)*1=259.00
(5*7+2)*(4+3)*1=259.00
(7*5+2)*(3+4)*1=259.00
(7*5+2)*(4+3)*1=259.00
(4*5*2-1*3)*7=259.00
(4*5*2-3*1)*7=259.00
(5*4*2-1*3)*7=259.00
(5*4*2-3*1)*7=259.00
(2*5*4-1*3)*7=259.00
(2*5*4-3*1)*7=259.00
(5*2*4-1*3)*7=259.00
(5*2*4-3*1)*7=259.00
(2*4*5-1*3)*7=259.00
(2*4*5-3*1)*7=259.00
(4*2*5-1*3)*7=259.00
(4*2*5-3*1)*7=259.00
(4*5*2-3/1)*7=259.00
(5*4*2-3/1)*7=259.00
(2*5*4-3/1)*7=259.00
(5*2*4-3/1)*7=259.00
(2*4*5-3/1)*7=259.00
(4*2*5-3/1)*7=259.00
((3+4)*5+1*2)*7=259.00
((3+4)*5+2*1)*7=259.00
((4+3)*5+1*2)*7=259.00
((4+3)*5+2*1)*7=259.00
((3+4)*5+2/1)*7=259.00
((4+3)*5+2/1)*7=259.00
(2*3+7)*4*5-1=259.00
(2*3+7)*5*4-1=259.00
(3*2+7)*4*5-1=259.00
(3*2+7)*5*4-1=259.00
(5*7+2)*(3+4)/1=259.00
(5*7+2)*(4+3)/1=259.00
(7*5+2)*(3+4)/1=259.00
(7*5+2)*(4+3)/1=259.00
(5*7+2)*1*(3+4)=259.00
(5*7+2)*1*(4+3)=259.00
(7*5+2)*1*(3+4)=259.00
(7*5+2)*1*(4+3)=259.00
(4*5*2-3)*1*7=259.00
(4*5*2-3)*7*1=259.00
(5*4*2-3)*1*7=259.00
(5*4*2-3)*7*1=259.00
(2*5*4-3)*1*7=259.00
(2*5*4-3)*7*1=259.00
(5*2*4-3)*1*7=259.00
(5*2*4-3)*7*1=259.00
(2*4*5-3)*1*7=259.00
(2*4*5-3)*7*1=259.00
(4*2*5-3)*1*7=259.00
(4*2*5-3)*7*1=259.00
(4*5*2-3)*7/1=259.00
(5*4*2-3)*7/1=259.00
(2*5*4-3)*7/1=259.00
(5*2*4-3)*7/1=259.00
(2*4*5-3)*7/1=259.00
(4*2*5-3)*7/1=259.00
(5*7*1+2)*(3+4)=259.00
(5*7*1+2)*(4+3)=259.00
(7*5*1+2)*(3+4)=259.00
(7*5*1+2)*(4+3)=259.00
(1*7*5+2)*(3+4)=259.00
(1*7*5+2)*(4+3)=259.00
(7*1*5+2)*(3+4)=259.00
(7*1*5+2)*(4+3)=259.00
(1*5*7+2)*(3+4)=259.00
(1*5*7+2)*(4+3)=259.00
(5*1*7+2)*(3+4)=259.00
(5*1*7+2)*(4+3)=259.00
((3+4)*5+2)*1*7=259.00
((3+4)*5+2)*7*1=259.00
((4+3)*5+2)*1*7=259.00
((4+3)*5+2)*7*1=259.00
((3+4)*5+2)*7/1=259.00
((4+3)*5+2)*7/1=259.00
(7/1*5+2)*(3+4)=259.00
(7/1*5+2)*(4+3)=259.00
(5/1*7+2)*(3+4)=259.00
(5/1*7+2)*(4+3)=259.00
(5*7/1+2)*(3+4)=259.00
(5*7/1+2)*(4+3)=259.00
(7*5/1+2)*(3+4)=259.00
(7*5/1+2)*(4+3)=259.00
(5*7+2)/1*(3+4)=259.00
(5*7+2)/1*(4+3)=259.00
(7*5+2)/1*(3+4)=259.00
(7*5+2)/1*(4+3)=259.00
(4*5*2-3)/(1/7)=259.00
(5*4*2-3)/(1/7)=259.00
(2*5*4-3)/(1/7)=259.00
(5*2*4-3)/(1/7)=259.00
(2*4*5-3)/(1/7)=259.00
(4*2*5-3)/(1/7)=259.00
((3+4)*5+2)/(1/7)=259.00
((4+3)*5+2)/(1/7)=259.00
Top
6 楼dcyu(Dd)回复于 2003-06-04 14:25:35 得分 0
英文字母可以重复吧,那boylez(boylez)就错了吧。Top
7 楼BlueSky2008(懒惰是程序员的美德)回复于 2003-06-04 14:40:33 得分 0
faint,怎么又是这题。Top
8 楼Riemann()回复于 2003-06-04 14:58:58 得分 30
http://expert.csdn.net/Expert/topic/1780/1780049.xml?temp=.4113275Top
9 楼boylez(boylez)回复于 2003-06-04 22:49:52 得分 0
没错把?Top
10 楼SimonSui(!熵、焓、自由能!)回复于 2003-06-05 10:37:06 得分 0
强烈建议楼主找一本排列组合的书好好看一看!!!!!!Top
11 楼daheixiong(大黑熊)回复于 2003-06-06 10:30:57 得分 0
有一新贴麻烦来看看。Top
12 楼daheixiong(大黑熊)回复于 2003-06-06 10:35:12 得分 0
怎么结不了贴。
提示:给分次数小于回复次数。???
这有问题吗,我本来就不是谁都给分。
祝贺Riemann() 升星。Top



