@jheddings близок и получил правильный ответ, но математика была не совсем корректной. Не забывайте, что вы не ограничены всеми перестановками символов определенной длины. Вы также можете использовать URL-адреса длиной от 1 до y символов. Поэтому мы хотим получить закрытое значение этой суммы:
x + x^2 + x^3 + ...+ Х^у = 2000000
К счастью, существует замкнутая форма для этой суммы:
х + х^2 + х^3 + ... + х^у = х * (х^у - 1)/(x-1) = 2000000
x - количество возможных символов в нашем диапазоне. Для простоты предположим, что включает в себя только строчные буквы, заглавные буквы и цифры (26 + 26 + 10 = 62)
Тогда мы получаем следующее уравнение:
2000000 = (62^(y+1) - 62)/(62-1)
2000000 = (62^(y+1) - 62)/(61)
2000000 * 61 = 62^(y+1) - 62
122000000 = 62^(y+1) - 62
122000000 + 62 = 62^(y+1)
122000062 = 62^(y+1)
log(122000062) = (y+1)
log(122000062)/log(62) = y+1
4.511492 = y+1
3.511492 = y
И, как вы сказали, 3.5 символы невозможны, поэтому требуется 4. Разумеется, разница в этом случае не имеет значения. Однако в определенных сценариях (особенно при работе с базой 2) это очень важно.
Спасибо так много. Очень круто. – mager