Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
numbers:maths [2013/04/07 11:47] alfred [Trucos matemáticos] |
numbers:maths [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 282: | Línea 282: | ||
| === Calculo de raíz cuadrada por método Newton === | === Calculo de raíz cuadrada por método Newton === | ||
| + | Código en Scala: | ||
| <code scala> | <code scala> | ||
| - | def abs(x: Double) = if (x > 0) x else -x //> abs: (x: Double)Double | + | def abs(x: Double) = if (x > 0) x else -x |
| def sqrtIter(guess: Double, x: Double): Double = | def sqrtIter(guess: Double, x: Double): Double = | ||
| if (isGoodEnough(guess, x)) guess | if (isGoodEnough(guess, x)) guess | ||
| - | else sqrtIter(improve(guess, x), x) //> sqrtIter: (guess: Double, x: Double)Double | + | else sqrtIter(improve(guess, x), x) |
| def isGoodEnough(guess: Double, x: Double) = | def isGoodEnough(guess: Double, x: Double) = | ||
| - | abs(guess * guess - x) < 0.0001 //> isGoodEnough: (guess: Double, x: Double)Boolean | + | abs(guess * guess - x) < 0.0001 |
| def improve(guess: Double, x: Double): Double = | def improve(guess: Double, x: Double): Double = | ||
| - | (guess + x / guess) / 2 //> improve: (guess: Double, x: Double)Double | + | (guess + x / guess) / 2 |
| - | def sqrt(x: Double) = sqrtIter(1.0, x) //> sqrt: (x: Double)Double | + | def sqrt(x: Double) = sqrtIter(1.0, x) |
| sqrt(4) | sqrt(4) | ||
| </code> | </code> | ||