数字加字母的密码,共有几种排法从A-Z,1-99位数的密码,一共有几种排法?
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/06 00:18:37
数字加字母的密码,共有几种排法从A-Z,1-99位数的密码,一共有几种排法?
数字加字母的密码,共有几种排法
从A-Z,1-9
9位数的密码,一共有几种排法?
数字加字母的密码,共有几种排法从A-Z,1-99位数的密码,一共有几种排法?
区分大小写么?还有零不可以么?
必须九位数密码么?还是九位数以下都可以?
这里就最简单的一种情况解释下,九位密码,不分大小写,0不参与.
每一位数都有a-z,1-9,加起来35种可能,所以一位数密码就有三十五种排法.
第二位数还有三35种可能,第一位密码的每一种可能都对应着第二位密码的全部可能性,所以两位数密码有35*35种排法.
.
以此类推,九位数密码就有九个三十五相乘种可能性,即为35的9次方种排法.
总共26+9 =35种符号 排法=35*34*33*...*27
额,我错了,忘记可以重复用了,楼上是对的
用数列知识,一共有36!次排法
如果用数字1——26代表英文字母a--z,即1--a,2--b,以此类推……26——z;
那么我们可以用数字来代表相应的单词。
但是一个数字排列有多种可能,
如123可能代表abc(1,2,3.),也可能代表lc(12,3),或者aw(1,23)
要求编一个程序,计算出从键盘输入的每串数字可能代表的字母串的个数,输入0则程序结束
如
input:
全部展开
如果用数字1——26代表英文字母a--z,即1--a,2--b,以此类推……26——z;
那么我们可以用数字来代表相应的单词。
但是一个数字排列有多种可能,
如123可能代表abc(1,2,3.),也可能代表lc(12,3),或者aw(1,23)
要求编一个程序,计算出从键盘输入的每串数字可能代表的字母串的个数,输入0则程序结束
如
input:
25114
1111111111
3333333333
0
output:
6
89
1
==============================================================================
1只有一种排法.
1:
1
12:
(1)+2 (这里面的1是只有一个1的时候)
因为12可组有.
(12)....................共二个.
121:
(1+2)+1 (这是只有12的时候的情况)
(12)+1 (这是只有12的时候的情况)
此时因为2与1可组.顾多出单独1的时候的情况.
(1)+21 (这里是1单独的时候的情况)...........共三.
1212:
(1+2+1)+2 (这是只有121的时候的情况)
(12+1)+2 (这是只有121的时候的情况)
(1+21)+2 (这是只有121的时候的情况)
此时因为1与2可组.顾多出单独12时候的情况.
(1+2)+12 (这是只有12的时候的情况)
(12)+12 (这是只有12的时候的情况)..........共五.
----------------------------------------
至此.后面递推.应是斐波那契数列........
================================================
再回到总体.假设有一个为:12312612
明眼人一看便知这个数列的总结果应为(123)(126)(12)三个单项的积....
原因很简单.
123的3与12的1没法组成有效数.被隔离了.而126与12同理被隔离了.
也就是三者个数取斐波那契之后相乖即可...........
===========================================================================
#include
using namespace std;
int f(int n)
{
if(n==1)return 1;
if(n==2)return 2;
return f(n-1)+f(n-2);
}
int make(char *str)
{
int count=1;
int len=strlen(str);
int i,j;
for(i=0,j=1;i
if((str[i]==49||str[i]==50))
{
if(i+1==len)count*=f(j);
continue;
}
if(i-1>-1&&str[i]>54&&str[i-1]==50)j--;
count*=f(j);
j=0;
}
return count;
}
int main()
{
char *str[200];
int i;
for(i=0;i<200;i++)str[i]=new char[200];
i=0;
cin>>str[i];
while(strcmp(str[i],"0"))cin>>str[++i];
i=0;
while(strcmp(str[i],"0"))cout<
system("PAUSE");
return 0;
}
收起
35乘以9
35^9~