mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-04 07:29:47 +08:00

* 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
54 lines
1.8 KiB
JavaScript
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 }
|