Как вычислить случайное число bfloat в Maxima CAS - PullRequest
0 голосов
/ 30 июня 2019

Максимальная случайная функция Cas принимает в качестве входного числа с плавающей запятой и дает число с плавающей запятой в качестве выхода.

Мне нужно число с плавающей точкой с большим количеством цифр , поэтому я использую bfloat с повышенной точностью.

Я пробовал:

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

Лучший результат был:

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

но это не случайно.

1 Ответ

2 голосов
/ 01 июля 2019

Один из способов генерирования случайного большого числа - это сгенерировать целое число с соответствующим количеством битов, а затем изменить его масштаб, чтобы получить число в диапазоне от 0 до 1.

Обратите внимание, что random(n) возвращает целое число в диапазоне от 0 до n - 1, когда n является целым числом, поэтому: bfloat(random(10^fpprec) / 10^fpprec).

...