Skip to content

Commit

Permalink
Merge pull request Chalarangelo#468 from kriadmin/patch-2
Browse files Browse the repository at this point in the history
Create geometricProgression.md
  • Loading branch information
Chalarangelo authored Jan 3, 2018
2 parents 4037282 + 46dce45 commit ee605ba
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions snippets/geometricProgression.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
### geometricProgression

Initializes an array containing the numbers in the specified range where `start` and `end` are inclusive and the ratio between two terms is `step`.
Returns an error if `step` equals `1`.

Use `Array.from()`, `Math.log()` and `Math.floor()` to create an array of the desired length, `Array.map()` to fill with the desired values in a range.
Omit the second argument, `start`, to use a default value of `1`.
Omit the third argument, `step`, to use a default value of `2`.

``` js
const geometricProgression = (end, start = 1,step = 2) =>
Array.from({ length:Math.floor(Math.log(end/start)/Math.log(step))+1}).map((v, i) => start * (step ** (i)) )
```

```js
geometricProgression(256); // [1, 2, 4, 8, 16, 32, 64, 128, 256]
geometricProgression(256,3); //[3, 6, 12, 24, 48, 96, 192]
geometricProgression(256,1,4); //[1, 4, 16, 64, 256]
geometricProgression(256,2,1); //Gives error
```

0 comments on commit ee605ba

Please sign in to comment.