Files
JavaScript/Maths/GridGet.js
Ephraim Atta-Duncan e112434dee Add tests to Math (#423)
* Add prettier config

* test: add test to check for absolute function

* chore: es5 to es6

* test: add test to check mean function

* test: add test for sum of digit

* test: add test for factorial

* test: add test for fibonnaci

* test: add test for find HCF

* test: add test for lcm

* test: add gridget test

* test: add test for mean square error

* test: add test for modular binary exponentiation

* test: add tests for palindrome

* test: add test for pascals triangle

* test: add tests for polynomial

* test: add tests for prime check

* test: add tests for reverse polish notation

* test: add tests for sieve of eratosthenes

* test: add tests for pi estimation monte carlo method

* chore: move tests to test folder

* chore: fix standardjs errors
2020-10-12 01:17:49 +05:30

54 lines
1.8 KiB
JavaScript

/*
author: TangibleDream
license: GPL-3.0 or later
These methods will find x or y given the element and columns for a 2 dimensional array.
If your array is a perfect square, you can find columns by getting the square
root of the length of the array.
Let's say for instance you had an array of 10 by 10 or 100, elements and you wanted to
find the shortest distance between element 3, and element 49. In this case coding out
a function to return the distance without finding x and y for both elements I found to
be painful. If you first find x and y, where 3 becomes 4,1 and 49 becomes 10,5, you can
find distance by first subtracting x from x and y from y this returns 6,4 or -6,-4.
Next apply absolute value to assure the results are positive,
last choose the maximum value of the set, or 6.
+--+--+--+--+--+--+--+--+--+--+
| | | | 3| | | | | | |
+--+--+--+--+--+--+--+--+--+--+
| | | | | | | | | | |
+--+--+--+--+--+--+--+--+--+--+
| | | | | | | | | | |
+--+--+--+--+--+--+--+--+--+--+
| | | | | | | | | |49|
+--+--+--+--+--+--+--+--+--+--+
| | | | | | | | | | |
+--+--+--+--+--+--+--+--+--+--+
| | | | 3| | | | | | |
+--+--+--+--+--+--+--+--+--+--+
| | | | | 1| | | | | |
+--+--+--+--+--+--+--+--+--+--+
| | | | | | 2| | | | |
+--+--+--+--+--+--+--+--+--+--+
| | | | | | | 3| 4| 5|6!|
+--+--+--+--+--+--+--+--+--+--+
| | | | | | | | | | |
*/
const gridGetX = (columns, index) => {
while (index + 1 > columns) {
index = index - columns
}
return index + 1
}
const gridGetY = (columns, index) => {
return Math.floor(index / columns) + 1
}
export { gridGetX, gridGetY }