В этом примере показано, как использовать арифметику переменной точности для исследования десятичных цифр pi с помощью Symbolic Math 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');