Как я могу создать метод поиска общего количества возможных комбинаций с использованием динамического формата

У меня есть случайно сгенерированный пользовательский формат номерного знака, который выглядит следующим образом:

ISSIIIISS - Where 'I' is an Integer of 0-9 and 'S' is a string of A-Z

An example plate would be: 4DE2947BN

Я пытаюсь найти способ рассчитать общее количество всех возможных комбинаций этого формата номерного знака.

Как я могу это сделать и как я могу использовать PHP или JavaScript для решения этой проблемы?

У меня есть некоторое представление о том, как вы можете вычислять комбинации, но я изо всех сил пытаюсь понять, как это можно реализовать в коде, особенно с буквенно-цифровым форматом, который я пытаюсь вычислить.

Я понимаю математический принцип расчета комбинаций, но не совсем понимаю, как это можно реализовать в коде. Это та часть, с которой я борюсь, особенно с буквенно-цифровым форматом, который у меня есть. Извините, если это не то место, хотя

Charlie 08.04.2019 15:36

Замените каждое целое число на 10 и букву на 26 и умножьте все. Нравится 10*26*26*10*10*10*10*26*26*

DavChana 08.04.2019 15:39

@Charlie Если вы можете написать математику для этого расчета, все еще неясно, что мешает вам поместить указанную математическую формулу в свой код. Вы хотите что-то динамичный, где вы можете изменить формат и получить другой результат?

Patrick Q 08.04.2019 15:49

@PatrickQ Да, я искал способ, которым вы могли бы заменить его и другими форматами. Я мог бы объяснить это немного лучше, но я был немного сбит с толку, так как просмотр ответов перед публикацией был немного запутанным. Сид и Кэт дали мне ясность, которую я искал. Спасибо всем :)

Charlie 08.04.2019 15:56
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
6
4
56
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

I будучи числом, есть 10 вариантов.

S будучи персонажем, есть 26 возможностей.

Общее количество комбинаций 10 power (TheNumberOfI) * 26 power (TheNumberOfS)

Это можно решить динамически, используя простую функцию, которая подсчитывает количество S и количество I и использует результаты предыдущего уравнения.

function getNumberOfCombinations(input)
{
    const countI = (input.match(/I/g) || []).length;
    const countS = (input.match(/S/g) || []).length;
    const result =  Math.pow(10, countI) * Math.pow(26, countS);
    return (result);
}

console.info(getNumberOfCombinations("ISSIIIISS"));

Спасибо! Я думаю, что я усложнил это намного больше, чем нужно :)

Charlie 08.04.2019 15:46

Я думаю, это должно стать ясно, если вы будете рассматривать это по частям.
Для первого «И» 10 возможностей, а для первого «С» 26,
поэтому для этих двух символов вместе общее количество возможностей равно 10 x 26 = 260.

Тогда для следующего «S» у вас есть 26 возможностей, поэтому первые три символа вместе имеют 10 x 26 x 26 = 6760 возможностей.

Шаблон продолжается до тех пор, пока вы не получите 26^4 * 10^5 = 45,697,600,000, что в JS
26**4 * 10**4 или

let x = Math.pow(26,4) * Math.pow(10,5);
console.info(x);

Спасибо :) Я думаю, что я усложнил это намного больше, чем нужно, когда смотрел ответы перед публикацией. Цените помощь!

Charlie 08.04.2019 15:58

Другие вопросы по теме