這不是家庭作業=)。我在做一個項目,它會自動生成順序計算機名稱列表,如果列表將會是一個瘋狂的長列表,我想添加一個警告。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