如何在 Maxima CAS 中计算随机 bfloat 数

How to compute random bfloat number in Maxima CAS

Maxima Cas random function 将浮点数作为输入并给出浮点数作为输出。

我需要 floating point number with more digits,所以我使用精度更高的 bfloat。

我试过了:

random(1.0b0)
bfloat(random(1.0));

最好的结果是:

bfloat(%pi)/6.000000000000000000000000000000000000000000b0 5.235987755982988730771072305465838140328615665625176368291574320513027343810348331046724708903528447b-1

但不是随机的。

生成随机 bigfloat 的一种方法是生成一个具有适当位数的整数,然后重新缩放它以获得 0 到 1 范围内的数字。

请注意,当 n 为整数时,random(n) returns 是 0 到 n - 1 范围内的整数,因此:bfloat(random(10^fpprec) / 10^fpprec).