JavaScript | Как посчитать количество перестановок (слов) из набора символов, учитывая длину последовательности?

JavaScript | Как посчитать количество перестановок (слов) из набора символов, учитывая длину последовательности?

Есть массив, который содержит уникальные символы:

let myarr = ['1','2','3','4','5'];

Нам нужно узнать сколько слов определённой длины можно получить при любых перестановках символов. Как это сделать в JavaScript?

В науке «Математика» существует раздел под названием «Комбинаторика«. Он занимается перестановками.

Так вот в нашем случае на одной позиции в слове может быть 5 вариантов символа.

Если мы хотим получить слово длиной в 7 символов, то нам нужно число 5 умножить само на себя 7 раз:

5 * 5 * 5 * 5 * 5 * 5 * 5 = ?

Это называется «Правило умножения«. В JavaScript это можно записать как:

5**7

Получается 78125 вариантов перестановок (слов) можно получить.

 

Функция вычисления вариантов перестановок слов с учётом «Правила Умножения» и длины последовательности

function f1(array, seqlength){ return array.length**seqlength };

 

Пример работы функции

f1(['r', 'h', 'q', '1', '9'], 4)
625

 

Информационные ссылки

JavaScript | Как округлить до целого?

JavaScript | Как перемешать массив?

JavaScript | Случайный элемент массива

JavaScript | Как генерировать случайные слова из набора символов?

JavaScript | Массивы (Array)

Стандарт ECMAScript — Раздел «The Math Object» — https://tc39.es/ecma262/#sec-math-object

Стандарт ECMAScript — Раздел «21.3.2.27 Math.random ( )» — https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-math.random

Стандарт ECMAScript — Раздел «21.3.2.16 Math.floor ( x )» — https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-math.floor