I was exploring Jupyter notebooks , that combines live code, markdown and data, through Microsoft's implementation, known as MS Azure Notebooks , putting together a small library of R and F# notebooks . As Microsoft's FAQ for the service describes it as : ...a multi-lingual REPL on steroids. This is a free service that provides Jupyter notebooks along with supporting packages for R, Python and F# as a service. This means you can just login and get going since no installation/setup is necessary. Typical usage includes schools/instruction, giving webinars, learning languages, sharing ideas, etc. Feel free to clone and comment... In R Azure Workbook for R - Memoisation and Vectorization Charting Correlation Matrices in R In F# Charnownes Constant in FSharp.ipynb Project Euler - Problems 18 and 67 - FSharp using Dynamic Programming
Description
Solution (Orignal)
//Square of Sum of Natural Numbers
let sqrSumNat listNat =
let sumNat = Array.sum listNat
sumNat * sumNat
Array.sum sqrListNat
//Difference between sum of squares and square of sum
let diffNat100 = sumSqrListNat [|1..100|] - sqrSumNat [|1..100|]
- The sum of the squares of the first ten natural numbers is, 12 + 22 + ... + 102 = 385
- The square of the sum of the first ten natural numbers is, (1 + 2 + ... + 10)2 = 552 = 3025
- Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 385 = 2640.
- Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum.
Solution (Improved)
More concise ways than the original solution.
let sqrSumNat2 listNat = Array.sum listNat |> (fun x -> x*x)
let sumSqrListNat2 listNat = listNat |> Array.map (fun x -> x * x ) |> Array.sum
let diffNat100_2 = sqrSumNat2 [|1..100|] - sumSqrListNat2 [|1..100|]
Solution (Orignal)
//Square of Sum of Natural Numbers
let sqrSumNat listNat =
let sumNat = Array.sum listNat
sumNat * sumNat
//Sum of Squares of Natural Numbers
let sumSqrListNat listNat =
let sqrListNat = listNat |> Array.map (fun x -> x * x )Array.sum sqrListNat
//Difference between sum of squares and square of sum
let diffNat100 = sumSqrListNat [|1..100|] - sqrSumNat [|1..100|]
Comments
Post a Comment