gpt4 book ai didi

algorithm - 具有特定约束的长度为 N 的密码数

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:31:05 24 4
gpt4 key购买 nike

考虑 26 个字母和 10 个数字的集合。

编写一个函数,返回长度为 N 的密码个数,其中至少包含 L 个小写字母、至少 U 个大写字母和至少 D 个数字。

函数签名int cntPass(int N,int L,int U,int D)

我的方法:

我试图使用递归来解决它,但我认为它是错误的。我的(错误的)递归如下:

f(N,L,U,D)=f(N,L-1,U,D)+f(N,L,U-1,D)+f(N,L,U,D- 1)【有必要的基础条件,但没用】。

我正在寻找更好的方法或不同的逻辑来解决这个问题。

谢谢。

最佳答案

这只是一道简单的组合数学题。结果是NCL * N-LCU * N-L-UCD * 26L * 26U * 10D * 62N - U - L - D,可以简化为 26L + U * 10D * 62N - U - L - D * N!/(U!* L!* D!*(N - L - U - D)!)。

我们在 N 个地方中为小写字符选择 L 个地方。然后在剩下的N-L个地方中选出U个大写字母的地方。并在其余N - L - U位中选择D位作为数字。其余的一切都可以。

L小写字母各有26个选择。 U 大写字母也一样。 D位各有10个选择。对于其余的 (N - L - U - D),我们可以使用 26 + 26 + 10 个字符中的任意一个。

关于algorithm - 具有特定约束的长度为 N 的密码数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14685160/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com