Yan Cui
I help clients go faster for less using serverless technologies.
Problem
There are exactly ten ways of selecting three from five, 12345:
123, 124, 125, 134, 135, 145, 234, 235, 245, and 345
In combinatorics, we use the notation, 5C3 = 10.
In general,
It is not until n = 23, that a value exceeds one-million: 23C10 = 1144066.
How many, not necessarily distinct, values of nCr, for 1 <= n <= 100, are greater than one-million?
Solution
let factorial n = if (n = 0I) then 1I else [1I..n] |> List.reduce (*) let C n r = if r <= n then (factorial n) / ((factorial r) * (factorial (n - r))) else 0I let answer = [1I..100I] |> List.collect (fun n -> [1I..n] |> List.map (fun r -> C n r)) |> List.filter (fun x -> x > 1000000I) |> List.length
Whenever you’re ready, here are 4 ways I can help you:
- If you want a one-stop shop to help you quickly level up your serverless skills, you should check out my Production-Ready Serverless workshop. Over 20 AWS Heroes & Community Builders have passed through this workshop, plus 1000+ students from the likes of AWS, LEGO, Booking, HBO and Siemens.
- If you want to learn how to test serverless applications without all the pain and hassle, you should check out my latest course, Testing Serverless Architectures.
- If you’re a manager or founder and want to help your team move faster and build better software, then check out my consulting services.
- If you just want to hang out, talk serverless, or ask for help, then you should join my FREE Community.