Imports System
Public Class Pascalls_Triangle
Public Shared Sub Main()
'Returns the number at the location inside pascalls triangle
Pascalls_Return_n_Of_k(4,2)
End Sub
Public Function Return_Factorial_Of_n(Byval n as Integer)
'n! = n * (n-1)... * 3 * 2 * 1
dim nFactorial as uint64 = 1
for i as uint64 = n to 1 step -1
nFactorial *= i
Next
Return nFactorial
End Function
Public Function Pascalls_Return_n_Of_k(Byval n as int64, Byval k as int64)
'(n choose k) = n!/k!*(n - k)!
'Example: n = Row, k = Term
' 1 - Row(0)
' 1 1 - Row(1)
' 1 2 1 - Row(2)
' 1 3 3 1 - Row(3)
' 1 4 6 4 1 - Row(4)
'
' ' ' ' ' '
' ' ' ' ' Term(4)
' ' ' ' Term(3)
' ' ' Term(2)
' ' Term(1)
' Term(0)
Return (Return_Factorial_Of_n(n) / (Return_Factorial_Of_n(k) * Return_Factorial_Of_n(n-k)))
End Function
end class
SW1wb3J0cyBTeXN0ZW0KUHVibGljIENsYXNzIFBhc2NhbGxzX1RyaWFuZ2xlCglQdWJsaWMgU2hhcmVkIFN1YiBNYWluKCkKCQknUmV0dXJucyB0aGUgbnVtYmVyIGF0IHRoZSBsb2NhdGlvbiBpbnNpZGUgcGFzY2FsbHMgdHJpYW5nbGUKCQlQYXNjYWxsc19SZXR1cm5fbl9PZl9rKDQsMikKCUVuZCBTdWIKCQoJUHVibGljIEZ1bmN0aW9uIFJldHVybl9GYWN0b3JpYWxfT2ZfbihCeXZhbCBuIGFzIEludGVnZXIpCgkJJ24hID0gbiAqIChuLTEpLi4uICogMyAqIDIgKiAxCgkJZGltIG5GYWN0b3JpYWwgYXMgdWludDY0ID0gMQoJCWZvciBpIGFzIHVpbnQ2NCA9IG4gIHRvIDEgc3RlcCAtMQoJCQluRmFjdG9yaWFsICo9IGkKCQlOZXh0CgkJUmV0dXJuIG5GYWN0b3JpYWwKCUVuZCBGdW5jdGlvbgoKCVB1YmxpYyBGdW5jdGlvbiBQYXNjYWxsc19SZXR1cm5fbl9PZl9rKEJ5dmFsIG4gYXMgaW50NjQsIEJ5dmFsIGsgYXMgaW50NjQpCgkJJyhuIGNob29zZSBrKSA9IG4hL2shKihuIC0gaykhCgkJJ0V4YW1wbGU6IG4gPSBSb3csIGsgPSBUZXJtCgkJJyAgICAgIDEgICAgICAgICAgLSBSb3coMCkKCQknICAgICAxIDEgICAgICAgICAtIFJvdygxKQoJCScgICAgMSAyIDEgICAgICAgIC0gUm93KDIpCgkJJyAgIDEgMyAzIDEgICAgICAgLSBSb3coMykKCQknICAxIDQgNiA0IDEgICAgICAtIFJvdyg0KQoJCScKCQknICAnICcgJyAnICcKCQknICAnICcgJyAnIFRlcm0oNCkKCQknICAnICcgJyBUZXJtKDMpCgkJJyAgJyAnIFRlcm0oMikKCQknICAnIFRlcm0oMSkKCQknICBUZXJtKDApCgkJUmV0dXJuIChSZXR1cm5fRmFjdG9yaWFsX09mX24obikgLyAoUmV0dXJuX0ZhY3RvcmlhbF9PZl9uKGspICogUmV0dXJuX0ZhY3RvcmlhbF9PZl9uKG4taykpKQoJRW5kIEZ1bmN0aW9uCmVuZCBjbGFzcw==