String 长度为N且包含3个字符的可能字符串
我有3个字符-‘a’、‘b’、‘c’。我需要制作长度为N的字符串,其中N>=3每个字符必须至少在字符串中出现一次。允许重复字符。那么有多少这样的字符串是可能的。首先: 对于String 长度为N且包含3个字符的可能字符串,string,algorithm,math,combinations,permutation,String,Algorithm,Math,Combinations,Permutation,我有3个字符-‘a’、‘b’、‘c’。我需要制作长度为N的字符串,其中N>=3每个字符必须至少在字符串中出现一次。允许重复字符。那么有多少这样的字符串是可能的。首先: 对于N=3,必须使用字符“abc”(1个初始字符串)组成字符串 对于N=4,您必须使用以下三种格式组成字符串:“abca”,“abcb”或“abcc”(3个初始字符串) 对于N=5,从N=4中提取每个字符串,并附加“a”、“b”和“c”,从一个字符串中形成三个字符串。(共9个) 因此,对于给定的N,可以使用的可能“初始”字符串的数
N=3
,必须使用字符“abc”
(1个初始字符串)组成字符串
对于N=4
,您必须使用以下三种格式组成字符串:“abca”
,“abcb”
或“abcc”
(3个初始字符串)
对于N=5
,从N=4
中提取每个字符串,并附加“a”
、“b”
和“c”
,从一个字符串中形成三个字符串。(共9个)
因此,对于给定的N
,可以使用的可能“初始”字符串的数量是3^(N-3)
但是:
对于长度为N的每个初始字符串,可能的不同字符串的数量为N
例如,对于N=3,初始字符串为“abc”,但该字符串可以排列成6个不同的字符串:
abc
acb
bac
bca
cab
cba
因此,长度为N
的可能字符串的总数是:(3^(N-3))*N,其中字符“a”
、“b”
和“c”
至少出现一次代码>
For N=3, it's 6
N=4, 72
N=5, 1080
N=6, 19440
N=7, 408240
N=8, 9797760
N=9, 264539520
N=10, 7936185600
...
N=32, 1.8058768635096880150713941583736e+49
您正在尝试生成一个这样的字符串吗?您正在尝试生成所有字符串吗?您只是想计算可能的字符串数吗?到目前为止你尝试了什么?我想知道有多少字符串是可能的?无限的。根据你的要求…什么?给予有效的answer@DavidEisenstat你能解释一下吗?这假设abca
与abca
不同,不是吗?(第二个字符串交换了第一个和最后一个元素。)对于N=4,答案应该是36。所以我认为解决方案考虑了重复项。你是对的!我不考虑可能的复制品。对不起(