В этом примере показано, как использовать арифметику переменной точности для исследования десятичных разрядов pi с помощью символьных математических Toolbox™.
Шутка: Что вы получаете, когда берете солнце и делите его окружность на его диаметр?
Ответ: в небе!
Это старая игра, чтобы искать свой день рождения или телефонный номер в десятичных цифрах . Точность встроенных типов данных достаточна только для получения нескольких цифр:
num2str(pi, 100000)
ans = '3.141592653589793115997963468544185161590576171875'
Функция vpa использует переменную точность для преобразования символьных выражений в символьные числа с плавающей запятой. Новообращенный pi в число с плавающей запятой с помощью vpa. Повышение точности vpa использование digits.
digits(5000); a = vpa(pi)
a =
Чтобы преобразовать число переменной точности в строку, используйте функцию char.
c = char(a);
Найдите свой номер телефона в цифрах pi.
strfind(c, '1185480')ans = 447
Принято считать, что все цифры встречаются асимптотически одинаково часто в десятичном расширении , но доказательств пока нет. Найдите десятичную точку:
pos = strfind(c, '.')pos = 2
Преобразуйте десятичные цифры в числа и постройте гистограмму их частоты:
d = arrayfun(@str2num, c(pos+1:end));
histogram(d, 10);
title('Frequency of the decimal digits of \pi');