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
Consider all integer combinations of a^b for 2 <= a <= 5 and 2 <= b <= 5:
If they are then placed in numerical order, with any repeats removed, we get the following sequence of 15 distinct terms:
4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125
How many distinct terms are in the sequence generated by a^b for 2 <= a <= 100 and 2 <= b <= 100?
Solution
let rec powerFx num power endPower arr =
if power > endPower then
arr
else
let newResult = num**power
let newArr = List.append arr [newResult]
powerFx num (power+1.0) endPower newArr
let rec appendPowerFx num endNum power endPower arr =
if num > endNum then
arr
else
let newResult = powerFx num power endPower []
let newArr = List.append arr newResult
appendPowerFx (num+1.0) endNum power endPower newArr
let powerArray =
appendPowerFx 2.0 100.0 2.0 100.0 [] |> Set.ofList |> Set.count
Consider all integer combinations of a^b for 2 <= a <= 5 and 2 <= b <= 5:
- 2^2=4, 2^3=8, 2^4=16, 2^5=32
- 3^2=9, 3^3=27, 3^4=81, 3^5=243
- 4^2=16, 4^3=64, 4^4=256, 4^5=1024
- 5^2=25, 5^3=125, 5^4=625, 5^5=3125
If they are then placed in numerical order, with any repeats removed, we get the following sequence of 15 distinct terms:
4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125
How many distinct terms are in the sequence generated by a^b for 2 <= a <= 100 and 2 <= b <= 100?
Solution
let rec powerFx num power endPower arr =
if power > endPower then
arr
else
let newResult = num**power
let newArr = List.append arr [newResult]
powerFx num (power+1.0) endPower newArr
let rec appendPowerFx num endNum power endPower arr =
if num > endNum then
arr
else
let newResult = powerFx num power endPower []
let newArr = List.append arr newResult
appendPowerFx (num+1.0) endNum power endPower newArr
let powerArray =
appendPowerFx 2.0 100.0 2.0 100.0 [] |> Set.ofList |> Set.count
Comments
Post a Comment