Сколькими способами можно назвать ребенка, если ему дают не более трех имен, а общее число имен равно n - VB
Формулировка задачи:
У англичан принято давать детям несколько имен.Сколькими способами можно назвать ребенка, если ему дают не более трех имен, а общее число имен равно n?
Решение задачи: «Сколькими способами можно назвать ребенка, если ему дают не более трех имен, а общее число имен равно n»
textual
Листинг программы
Sub Задача_комбинаторика()
n& = CLng(InputBox("Введите кол-во имен:"))
m& = 3&
MsgBox "Если имена равносильны, ответ = " & Сочитание(n&, m&)
MsgBox "Если имена делятся по ""степени важности"", ответ = " & Pos#(n&, m&)
End Sub
Function Сочитание#(n&, m&)
Сочитание = Fact#(n&) / (Fact#(m&) * Fact#(n& - m&))
End Function
Function Pos#(n&, m&)
If m& = 1& Then
Pos# = n&
Else
Pos# = (n& - m& + 1&) * Pos#(n&, m& - 1&)
End If
End Function
Function Fact#(C&)
If C& = 1& Then
Fact# = 1&
Else
Fact# = C& * Fact#(C& - 1&)
End If
End Function