Hickerson series of almost integers: Difference between revisions

Content added Content deleted
m (→‎version 3: added whitespace.)
(→‎{{header|Wren}}: Added a second version using BigRat.)
Line 2,323: Line 2,323:
17: 130370767029135900.4 false
17: 130370767029135900.4 false
</pre>
</pre>

Since the above solution was posted, support for arbitrary precision rational numbers has been added to the Wren-big module. The BigRat class has methods to convert to and from decimal number representation. However, it doesn't support transcendental functions and so again I've used the most accurate value I could find for log2 and represented it as a BigRat.

The following produces the same results as before though is slower than the BigInt version due to the implicit conversions needed.
<lang ecmascript>import "/math" for Int
import "/fmt" for Fmt
import "/big" for BigRat

var hickerson = Fn.new { |n|
var fact = BigRat.new(Int.factorial(n))
var ln2 = BigRat.fromDecimal("0.693147180559945309417232121458176568075500134360255254120680009")
return fact / (BigRat.two * ln2.pow(n+1))
}

System.print("Values of h(n), truncated to 1 dp, and whether 'almost integers' or not:")
for (i in 1..17) {
var h = hickerson.call(i).toDecimal(1, false)
var hl = h[-1]
var ai = (hl == "0" || hl == "9")
Fmt.print("$2d: $20s $s", i, h, ai)
}</lang>


=={{header|zkl}}==
=={{header|zkl}}==