注册 登录
编程论坛 VB6论坛

求教,104键键盘,有多少种按法?

yuma 发布于 2022-11-15 07:25, 2226 次点击
104键键盘,键盘上共和104个按键。
一次按N个不重复的按键,有多少种按法?

比如:
a
ac
abcd
acde+-
aefg)
12 回复
#2
时光流逝2022-11-15 10:38
N是多少?
#3
wmf20142022-11-15 10:41
根据资料:标准104键盘大小为 475*171*30mm,每个键为15*15mm,间隔为3mm,成年人手掌面积中值是70*160,两个手掌一起按,最多能按int(2*70*160/(18*18))=69,所以n的最大值不超过69。
分析题意:一次按n个不重复的键,n值不固定的情况下,总按法有c(104,1)*c(104,2)*...*c(104,69)(应该是乘,比如开始只按一个键,第二次两个手掌一起按,第三次按5个,总按法组合是乘)。
          如果n值固定,则有c(104,n)种按法。

[此贴子已经被作者于2022-11-15 10:47编辑过]

#4
yuma2022-11-15 10:54
回复 2楼 时光流逝
N是1到104的数

大意是有104种不同的字符,用这104种字符做密码,密码长度为1 -104,可以有多少种密码?

[此贴子已经被作者于2022-11-15 11:01编辑过]

#5
mrexcel2022-11-15 21:01
不考虑大小写等问题,共有
104+104^2+104^3+...+104^104
=(104^105-104)/(104-1)
=596572735863621270565621492125553517316842070711406474174775303356475053082470894533229612021927511402865020056072618551708364439237948254602003819935046005638432919269390902255824530197813094238208358767977640
#6
yuma2022-11-16 09:59
回复 5楼 mrexcel
根据你的公式:
n+n^2+n^3...+n^n
={n^(n+1)-n} /(n-1)

当n=2时,等于6,但实际上应该等于4才对
1
2
12
21

当n=3时,等于39,但实际上应该等于15才对
1
2
3
12
13
21
23
31
32
123
132
213
231
312
321


那104种不同的字符,组成不重复的104位密码,有多少种组合方法呢?谢谢回复!

[此贴子已经被作者于2022-11-16 10:22编辑过]

#7
mrexcel2022-11-16 21:01
大意是有104种不同的字符,用这104种字符做密码,密码长度为1 -104,可以有多少种密码?
这个就是n+n^2+n^3...+n^n={n^(n+1)-n} /(n-1)
当n=2时,等于6:
1
2
11
12
21
22

104种不同的字符,组成不重复的104位密码,有多少种组合方法呢?
按你的规则,设n个数的组合有a(n)种,显然
a(1)=1,a(n)=n(a(n-1)+1)=Sum_{i=0..n-1} (n!/i!)=int(e*n! - 1)
a(104)=27995630069324781349317341385464140821949551716225717077253319236249426113842080106872393723664304658585219818718842401409361708904236997263466301363960530093207266464
#8
yuma2022-11-17 13:13
回复 7楼 mrexcel


[此贴子已经被作者于2022-11-24 13:01编辑过]

#9
yuma2022-11-24 14:11
以下是引用mrexcel在2022-11-16 21:01:54的发言:

大意是有104种不同的字符,用这104种字符做密码,密码长度为1 -104,可以有多少种密码?
这个就是n+n^2+n^3...+n^n={n^(n+1)-n} /(n-1)
当n=2时,等于6:
1
2
11
12
21
22

104种不同的字符,组成不重复的104位密码,有多少种组合方法呢?
按你的规则,设n个数的组合有a(n)种,显然
a(1)=1,a(n)=n(a(n-1)+1)=Sum_{i=0..n-1} (n!/i!)=int(e*n! - 1)
a(104)=27995630069324781349317341385464140821949551716225717077253319236249426113842080106872393723664304658585219818718842401409361708904236997263466301363960530093207266464


公式不对.

104种不同的字符,用这104种字符做密码,密码长度为1 -104,组成不重复的104位密码,有多少种密码?
a(1)=1,a(n)=n(a(n-1)+1)=Sum_{i=0..n-1} (n!/i!)=int(e*n! - 1)
a(104)=27995630069324781349317341385464140821949551716225717077253319236249426113842080106872393723664304658585219818718842401409361708904236997263466301363960530093207266464

这个用编程写这个代数式应该怎么写?

[此贴子已经被作者于2022-11-24 14:27编辑过]

#10
mrexcel2022-11-24 18:19
可以递归,或者递推
a(1)=1,
a(n)=n(a(n-1)+1)
#11
yuma2022-11-24 19:47
看不懂什么意思。


大致是:
a(n)=n(a(n-1)+1)
=n*(n+1)
???
#12
mrexcel2022-11-25 00:23
程序代码:
Function a(ByVal n As Long)
If n = 0 Then Exit Function
a = n * (a(n - 1) + 1)
End Function

Sub test()
Debug.Print a(10)
Debug.Print a(104)
End Sub

9864100
 2.79956300693248E+166


[此贴子已经被作者于2022-11-25 00:25编辑过]

#13
yuma2022-11-25 09:03
回复 12楼 mrexcel
非常感谢
a(1)=1,a(n)=n(a(n-1)+1)=Sum_{i=0..n-1} (n!/i!)=int(e*n! - 1)
感谢讲解!

猜测代码是递归算法。

[此贴子已经被作者于2022-11-25 09:32编辑过]

1