La fórmula del héroe para el área de un triángulo dada la longitud de sus tres lados a, b y c está dada por:
$$ A = \ sqrt {s (sa) (sb) (sc)}, $$
donde s es la mitad del perímetro del triángulo; es decir,
$$ s = \ frac {a + b + c} {2}. $$
Los triángulos heronianos son triángulos cuyos lados y área son todos enteros.
Un ejemplo es el triángulo con lados 3, 4, 5 cuya área es 6 (y cuyo perímetro es 12).
Tenga en cuenta que cualquier triángulo cuyos lados son todos un entero múltiplo de 3, 4, 5; como 6, 8, 10, también será un triángulo heroniano.
Define un triángulo heroniano primitivo como un triángulo heroniano donde el mayor divisor común
De los tres lados es 1 (unidad).
Esto excluirá, por ejemplo, el triángulo 6, 8, 10.
Tarea: Implementar una función basada en la fórmula de héroe que devuelve el primero n th
triángulos ordenadas en una matriz de matrices.
heronianTriangle
es una función.
testString: 'assert(typeof heronianTriangle === "function", "heronianTriangle
is a function.");'
- text: 'heronianTriangle()
debe devolver [[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17]]
'
testString: 'assert.deepEqual(heronianTriangle(testCases[0]), res[0], "heronianTriangle()
should return [[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17]]
");'
- text: 'heronianTriangle()
debe devolver [[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17], [13, 13, 24], [6, 25, 29], [11, 13, 20], [5, 29, 30], [13, 14, 15]],
'
testString: 'assert.deepEqual(heronianTriangle(testCases[1]), res[1], "heronianTriangle()
should return [[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17], [13, 13, 24], [6, 25, 29], [11, 13, 20], [5, 29, 30], [13, 14, 15]],
");'
- text: 'heronianTriangle()
debe devolver [[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17], [13, 13, 24], [6, 25, 29], [11, 13, 20], [5, 29, 30], [13, 14, 15], [10, 17, 21], [7, 24, 25], [8, 29, 35], [12, 17, 25], [4, 51, 53]],
'
testString: 'assert.deepEqual(heronianTriangle(testCases[2]), res[2], "heronianTriangle()
should return [[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17], [13, 13, 24], [6, 25, 29], [11, 13, 20], [5, 29, 30], [13, 14, 15], [10, 17, 21], [7, 24, 25], [8, 29, 35], [12, 17, 25], [4, 51, 53]],
");'
- text: 'heronianTriangle()
debe devolver [[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17], [13, 13, 24], [6, 25, 29], [11, 13, 20], [5, 29, 30], [13, 14, 15], [10, 17, 21], [7, 24, 25], [8, 29, 35], [12, 17, 25], [4, 51, 53], [19, 20, 37],[16, 17, 17], [17, 17, 30], [16, 25, 39], [13, 20, 21]]
'
testString: 'assert.deepEqual(heronianTriangle(testCases[3]), res[3], "heronianTriangle()
should return [[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17], [13, 13, 24], [6, 25, 29], [11, 13, 20], [5, 29, 30], [13, 14, 15], [10, 17, 21], [7, 24, 25], [8, 29, 35], [12, 17, 25], [4, 51, 53], [19, 20, 37],[16, 17, 17], [17, 17, 30], [16, 25, 39], [13, 20, 21]]
");'
```