Я была поставлена задача, чтобы решить эту проблему:Алгоритм биномиального коэффициента (Ncr) в Рубине
Есть ровно десять способов выбора трех из пяти, 12345:
123, 124, 125, 134, 135, 145, 234, 235, 245, and 345
В комбинатонике мы используем обозначение,
5C3 = 10
. В общем,nCr = n!/r!(n−r)!
где
r ≤ n
,n! = n×(n−1)×...×3×2×1
и0! = 1
.Только до
n = 23
, что значение превышает один миллион:23C10 = 1144066
.Сколько, не обязательно отличных значений,
nCr
, для1 ≤ n ≤ 100
, - больше одного миллиона?
Мне нужно разработать алгоритм в Ruby для решения этой проблемы, но я, похоже, не понимаю, как это делается.
ли это быть "умный" алгоритм? Если нет, вы всегда можете просто решить для всех и подсчитать количество выпущенных решений, превышающих один миллион. –
Неясно, что вы подразумеваете под 'Только до n = 23, что значение превышает один миллион: 23C10 = 1144066.'. Откуда «10»? Вы имеете в виду 'for some r'? Если это так, вам нужно написать это. – sawa
@sawa На самом деле его копирование с актуальной страницы проблемы: http://projecteuler.net/problem=53 –