Codegolf — Оценка Биномиального Коэффициента

  • Автор темы Alex5463524
  • Обновлено
  • 18, Oct 2024
  • #1
На этот вопрос уже есть ответы здесь:

 
 c(n,0) = c(n,n) = 1 for all n
c(n,1) = c(n,n-1) = n for all n 
c(5,3) = 10
c(13,5) = 1287
 
such that c(n,k) := (n!) / (k! * (n-k)!) Математическая комбинация

0 <= k <= n

(31 ответ)

n,k

Закрыт 5 лет назад. Даны два неотрицательных целых числа , верните биномиальный коэффициент Тестовые случаи

Большинство языков, вероятно, будут иметь встроенную функцию.

Alex5463524


Рег
09 Apr, 2014

Тем
70

Постов
186

Баллов
586
  • 26, Oct 2024
  • #2

JavaScript (ES6), 27 байт

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 :     % Take input n implicitly. Range

% STACK: [1 2 ... n]
i:    % Take input k. Range

% STACK: [1 2 ... n], [1 2 ... k]
&G-   % Push n and k again. Subtract

% STACK: [1 2 ... n], [1 2 ... k], n-k
:     % Range

% STACK: [1 2 ... n], [1 2 ... k], [1 2 ... n-k]
h     % Concatenate the top two arrays horizontally

% STACK: [1 2 ... n], [1 2 ... k 1 2 ... n-k]
/     % Element-wise division

% STACK: [1/1 2/2 ... k/k (k+1)/1 (k+2)2 ... n/(n-k)]
p     % Product of array. Implicitly display

% STACK: 1/1 * 2/2 * ... * k/k * (k+1)/1 * (k+2)2 * ... * n/(n-k)
 
||answer||

MATL, 2 байта

:i:&G-:h/p

попробуйте онлайн!

 

Homero111


Рег
31 Jan, 2005

Тем
79

Постов
193

Баллов
638
  • 26, Oct 2024
  • #4

CJam, 11 байт

{+combinations $^n,$^p}

Попробуйте онлайн!

Объяснение

Здесь используется трюк, который (я думаю) я впервые использовал для конкурса каталонских чисел. В CJam для этого нет встроенной функции, а вычисление трех факториалов обходится слишком дорого. Но биномиальный коэффициент is the number of ways we can select k<newline>n из c(n,k) elements. That is, it's equal to the number of permutations of a list of n,k элементы, где .cF of them have one value and the remaining have another.

f=lambda n,k:k<1or n*f(n-1,k-1)/k ||answer||

Хаскель, 37 35 байт

p ||answer||

Математика, 8 байт

i

Ага. Пример использования: C or pCi i чтобы получить 3!5 10 5!13 1287 .

 

Mic


Рег
13 Sep, 2006

Тем
74

Постов
197

Баллов
587
  • 26, Oct 2024
  • #5

Матлаб, 8 байт

Для этого расчета имеется встроенная функция:

! ||answer||

Хаскель, 34 байта

n*k-k*k<1

Пример использования: k<1||k>=n -> 1287 .

Вариант того же размера для 13#5 test is n#k|k<1||k>=n=1|m<-n-1=m#(k-1)+m#k .

 

Doc_Albert


Рег
07 Dec, 2006

Тем
72

Постов
202

Баллов
622
  • 26, Oct 2024
  • #6

Дж, 1 байт

nchoosek

Использование:

1287 ||answer||

Медуза, 6 байт

13~Binomial~5

Попробуйте онлайн!

Binomial[13,5] is the built-in for binomial coefficients, the Binomial s заменяются одним входом каждый, n#0=1 0#k=1 n#k=(n-1)#(k-1)*n`div`k prints the result.

 

Arbisorgo


Рег
07 Aug, 2004

Тем
73

Постов
218

Баллов
583
  • 26, Oct 2024
  • #7

Godzillaz


Рег
24 Feb, 2007

Тем
47

Постов
182

Баллов
467
  • 26, Oct 2024
  • #8

Пиф, 3 байта

k

Программа, которая принимает входные данные в виде n and prints the result.

Тест

Как это работает

Это просто складывается n over the input.

 

Ruifesige


Рег
26 Oct, 2012

Тем
83

Постов
232

Баллов
697
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно