Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Расчет числа последовательностей (https://javascript.ru/forum/offtopic/26605-raschet-chisla-posledovatelnostejj.html)

Slavenin 14.03.2012 18:52

Расчет числа последовательностей
 
Всем доброго времени суток!
Есть четыре набора цифр от 1 до 10, необходимо посчитать количество возможных вхождений последовательности из любых 5 элементов наборов, при этом в последовательность могут входить элементы из любого набора, главное чтобы они шли подряд, например:

набор 1: 1,2,3,4,5,6,7,8,9,10
набор 2: 1,2,3,4,5,6,7,8,9,10
набор 3: 1,2,3,4,5,6,7,8,9,10
набор 4: 1,2,3,4,5,6,7,8,9,10

последовательность может быть 1,2,3,4,5 или 5,6,7,8,9 или 2,3,4,5,6 и т.д. главное чтобы элементы шли подряд они могут содержать числа из любого из 4-х наборов. Нужно вычислить сколько всего таких последовательностей может быть в этих 4 наборах.

Логика подсказывает, что нужно использовать формулы комбинаторики в частности 10!/(5!*(10-5)!), но таким образом вычисляется число комбинаций в одном наборе, никак не пойму как учесть что числа в ней могут быть из любого набора и должны быть друг за другом.

Rootpassword 14.03.2012 20:01

Еще раз попробуйте переформулировать, с примерами. Так как вы сформулировали-ответ
1,2,3,4,5
2,3,4,5,6
3,4,5,6,7
4,5,6,7,8
5,6,7,8,9
6,7,8,9,10
и все.

Slavenin 14.03.2012 21:38

в общем смысл прост надо посчитать сколько комбинаций стрита(последовательность из любых 5 карт) находится в колоде из 52 карт при этом масть карт значения не играет, т.е. сколько стритов можно собрать из 52 карт
пример стрита
2б,3п,4ч,5к,6б

Rootpassword 14.03.2012 22:00

Если у вас
1,2,3,4,5
2,3,4,5,6
3,4,5,6,7
4,5,6,7,8
5,6,7,8,9
6,7,8,9,10

Это все 6 вариантов без мастей, каждый элемент может быть 1 из четырех мастей на пяти местах=6 последовательностей, 4 варианта, 5 мест
6*(4^5)

Slavenin 14.03.2012 22:13

т.е для последовательности из 13 карт формула будет выглядеть как 10*4^5? а вообще через формулы комбинаторики реально вычислить такую задачу? я просто в математике не очень силен

а вообще получается что стрит можно собрать 10200 способами

Rootpassword 14.03.2012 23:03

Ну проверьте на малых числах, которые можно вручную подсчитать, не ошибся ли я.
Это и есть комбинаторика. Т.к. у вас масти не влияют, все варианты независимые. Поэтому степень, а не факториал.

Slavenin 15.03.2012 08:30

благодарю, за объяснение.
нет, вы не ошиблись:)

Slavenin 15.03.2012 09:34

правильно ли я рассуждаю для расчета числа различных комбинаций из 5 карт в пределах 13 карт одной масти.
Основных комбинаций - 10
1 2 3 4 5 6
2 3 4 5 6 7
3 4 5 6 7 8
4 5 6 7 8 9
5 6 7 8 9 10
6 7 8 9 10 j
7 8 9 10 j q
8 9 10 j q k
9 10 j q k a

в каждой из этих комбинаций одна из карт может занимать одно из 9 незанятых мест
2 3 4 5 6
2 3 4 5 7
2 3 4 5 8
2 3 4 5 9
2 3 4 5 10
2 3 4 5 j
2 3 4 5 q
2 3 4 5 k
2 3 4 5 a

всего таких карт 5

отсюда общее число различных не повторяющихся вариантов = 9*10*5=450
?

Slavenin 16.03.2012 12:33

уже объяснили, что я рассуждаю неправильно, правильно действовать через формулу сочетаний

Slavenin 20.03.2012 08:48

дабы не делать еще одну тему спрошу здесь. Как в js работать с очень большими числами, в частности с факториалом 52 (8065817517094390000000000000000000000000000000000 0000000000000000000
) или на js такие штуки не прокатят? из-за округления в экспоненциальный вид теряется точность, что недопустимо.


Часовой пояс GMT +3, время: 01:04.