Что такое функция Julia для подсчета комбинаций (n выберите k)? - PullRequest
0 голосов
/ 30 апреля 2018

Я ищу (надеюсь, встроенную) функцию в Julia, которая вычисляет количество комбинаций

nChooseK

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

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Будьте внимательны, чтобы использовать BigInt, если хотите взять бином из «больших» чисел, таких как 200

julia> binomial(3,2)
3

julia> binomial(300,200)
ERROR: OverflowError: binomial(300, 200) overflows
Stacktrace:
 [1] binomial(::Int64, ::Int64) at ./intfuncs.jl:876
 [2] top-level scope at none:0

julia> binomial(BigInt(300),BigInt(200))
4158251463258564744783383526326405580280466005743648708663033657304756328324008620
0 голосов
/ 30 апреля 2018

Скорее всего, вы ищете функцию binomial, которая возвращает биномиальный коэффициент. В настоящее время он находится в базе

Вот несколько простых примеров:

julia> binomial(2,1)
2

julia> binomial(3,2)
3

Если вы хотите увидеть фактические комбинации, то вы можете использовать функцию combinations(a,n) пакета Combinatorics. Это дает вам итерацию со всеми возможными комбинациями длины n массива a.

julia> using Combinatorics

julia> collect(combinations(1:3,2))
3-element Array{Array{Int64,1},1}:
 [1, 2]
 [1, 3]
 [2, 3]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...