这不是家庭作业=)。我在做一个项目,它会自动生成顺序计算机名称列表,如果列表将会是一个疯狂的长列表,我想添加一个警告。Math - 查找两个字符串之间的排列数
我知道如何找到比如说A-ZZZ排列的数目,但我有一个时间赫克尝试应用的容斥集。这里是场景,为了简单起见,字符集只会是A - Z,不区分大小写,所以“A”=“a”。
用户输入“ABC”到“AX”的范围。所以我需要的唯一数字就是在这两者之间。所以psudo逻辑会得到A - ZZZ的全部总数,那么我需要排除,“ABC”之前的所有内容以及“AX”之后的所有内容。
所以现在的问题是,我该如何“ABC”之前和“AX”后发现计数。我查看了所有我的旧版离散和统计数学书,但没有什么适合的,或者在插入数字(n!/ n1!* n2!...)时给我正确的答案。我甚至试图做一些转换二进制或十六进制到十进制,但你知道这是一个史诗般的失败=)。
谢谢,
戴夫
谢谢保罗,那正是我想要做的,但却让它倒退了。所以,如果我想添加数字0-9,那么这个集合就是a-z0-9,我只会用你的前缀ABC = 36^2 * 0 + 36^1 * 1 + 36^0 * 2 – MaxThrust
@MaxThrust。数字的基数等于可用字母表中的字符数。高兴地帮助;) – Paul
是东好,直到最后一部分。我得到AAA = 0,但不知道ZZ = -1。 ZZ的价值将是25,25,-1(空间),依次。 – MaxThrust