Встроенные функции
Функции генерации случайных чисел
Для реализации статистических методов моделирования используются случайные числа. Система имеет генератор псевдослучайных чисел, доступ к которому обеспечивают следующие функции:
- Random [ ] – возвращает равномерно распределенное псевдослучайное число типа Real в интервале от 0 до 1;
- Random [type, range] – дает псевдослучайное число указанного типа type, лежащее в указанном интервале range. К возможным типам относятся Integer, Real и Complex. По умолчанию принят интервал от 0 до 1. Можно задать интервал явно в виде {min, max}; спецификация интервала в виде max эквивалентна {0, max};
- SeedRandom[n] – сбрасывает (устанавливает в начальное состояние) генератор случайных чисел, используя целое п как начальное число;
- SeedRandom [ ] – устанавливает генератор, используя в качестве начального числа текущее время.
Хотя генерируемые числа не являются строго случайными, их количество в повторяющейся последовательности очень велико. Использование специальной установки начального состояния генератора, например по времени дня, делает повторение последовательности практически невозможным.
Для проверки равномерности распределения большого массива случайных чисел можно задать с их помощью случайные координаты и затем построить точки, соответствующие координатам (х, у). Рисунок 3.4 наглядно показывает, как это делается для массива из 10 000 случайных точек. О равномерности распределения случайных чисел говорит равномерность распределения плотности точек на графике.
Рис. 3.4. Графическая иллюстрация распределения точек со случайными координатами (х, у)
Возможно, читателю не сразу понятны графические средства, использованные в документе, показанном на рис. 3.4. Это не беда – в последующих уроках они будут описаны довольно подробно.
Функции выявления погрешностей и анализа структуры чисел
Следующие функции, опции и директивы используются, в основном, для выявления погрешностей вычислений и уточнения структуры чисел:
- Accuracy [х] – возвращает количество десятичных цифр справа от десятичной точки числа х;
- EvenQ [expr] – возвращает значение True, если expr есть четное число, и False – в противном случае;
- IntegerDigits [n] – возвращает список десятичных цифр целого числа n;
- IntegerDigits [n,b] – возвращает список цифр целого числа п в записи по основанию b;
- IntegerDigits [n, b, k] – возвращает список длиной k, содержащий самые младшие (наименьшие) значащие цифры в n;
- Precision [x] – возвращает количество точных знаков в числе х.
Поясним применение этих функций следующими примерами.
Ввод (In) | Вывод(Out) |
---|---|
Accuracy [123. 456] | 14 |
EvenQ [2*3+2] | True |
EvenQ [2*3+3] | False |
IntegerDigits [12345] | {1, 2.3, 4, 5} |
IntegerDigits [12345, 16] | {3, 0.3, 15} |
IntegerDigits [12352, 16] | {3, 0.4, 0} |
IntegerDigits [12352.2] | {1.1.0.0.0.0.0.0.1.0.0.0.0.0.0} |
Precision [123. 452] | 16 |
Функциями Accuracy и Precision возвращаются значения, установленные в последний раз или по умолчанию при первой загрузке системы.
Примечание:
Mathematical имеет обширный набор арифметических операторов и функций, достаточный для решения задач теории чисел и выполнения практически любых арифметических вычислений. Многие более специальные целочисленные функции будут рассмотрены в дальнейшем, по мере описания системы.