Научная статья на тему 'Свойства системы чисел с плавающей запятой'

Свойства системы чисел с плавающей запятой Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
118
17
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОМПЬЮТЕРНАЯ АРИФМЕТИКА / COMPUTER ARITHMETIC / ТОЧНОСТЬ ВЫЧИСЛЕНИЙ / CALCULATION ACCURACY / РАЗРЯДНОСТЬ ПРОЦЕССОРА / PROCESSOR PRECISION / ПРЕДСТАВЛЕНИЕ СИСТЕМЫ ЧИСЕЛ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ / REPRESENTATION OF FLOATING-POINT NUMBER SYSTEMS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Тен Иосиф Григорьевич, Мусина Индира Рафиковна, Люлюзов Малик Юсупович

В статье описывается разработка программы, формирующей множество чисел, с которыми в компьютере оперирует любое приложение. Программа должна генерировать систему чисел с плавающей запятой и наглядно демонстрировать свойства арифметических систем ограниченной разрядности. Это облегчит освоение трудных для понимания школьниками и студентами разделов Информатики. Программа позволит студентам получить четкое и ясное знание о том, какими числами может оперировать любое приложение. В статье приведены техническое задание и руководство к проектированию подобной программы.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Тен Иосиф Григорьевич, Мусина Индира Рафиковна, Люлюзов Малик Юсупович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Свойства системы чисел с плавающей запятой»

СВОЙСТВА СИСТЕМЫ ЧИСЕЛ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ Тен И.Г.1, Мусина И.Р.2, Люлюзов М.Ю.3 Email: Ten1796@scientifictext.ru

'Тен Иосиф Григорьевич — кандидат технических наук, профессор, заведующий кафедрой;

2Мусина Индира Рафиковна — кандидат технических наук, доцент; 3'Люлюзов Малик Юсупович — магистрант, кафедра программного обеспечения компьютерных систем, Кыргызский государственный технический университет им. И. Раззакова, г. Бишкек, Кыргызская Республика

Аннотация: в статье описывается разработка программы, формирующей множество чисел, с которыми в компьютере оперирует любое приложение. Программа должна генерировать систему чисел с плавающей запятой и наглядно демонстрировать свойства арифметических систем ограниченной разрядности. Это облегчит освоение трудных для понимания школьниками и студентами разделов Информатики. Программа позволит студентам получить четкое и ясное знание о том, какими числами может оперировать любое приложение. В статье приведены техническое задание и руководство к проектированию подобной программы.

Ключевые слова: компьютерная арифметика, точность вычислений, разрядность процессора, представление системы чисел с плавающей запятой.

PROPERTIES OF FLOATING-POINT SYSTEMS Ten I.G.1, Musina I.R.2, Luluzov M.Yu.3

'Ten Iosif Grigorievich — PhD in Engineering, Professor, Head of Department;

Musina Indira Rafikovna — PhD in Engineering, Associate Professor; '''Luluzov Malik Yusupovich — Graduate Student, SOFTWARE ENGINEERING DEPARTMENT, KYRGYZ STATE TECHNICAL UNIVERSITY NAMED AFTER I. RAZZAKOV, BISHKEK, REPUBLIC OFKYRGYZSTAN

Abstract: the article describes development of a program that generates a set of numbers, with which any application operates. The program should generate a system of floating-point arithmetic and illustrate the properties of limited bit systems. This will facilitate understanding by students of Informatics sections. The program will allow students to get clear knowledge of numbers any application can work with. Software requirements specifications and guidance for design of such program are described in the article.

Keywords: computer arithmetic, calculation accuracy, processor precision, representation offloating-point number systems.

УДК:004.451: 004.43

В натуральной арифметике между нулем и единицей существует бесконечное количество вещественных чисел. Различие между двумя соседними числами в натуральной арифметике стремится к нулю. В свою очередь, компьютер из-за ограниченной разрядности блока памяти может хранить и использовать только ограниченное количество чисел. Для представления этого ограниченного набора чисел, в компьютерной науке была введена система чисел с плавающей запятой, что является компромиссом между точностью и скоростью вычислений [1].

Обученный студент должен уметь учитывать особенности компьютерной арифметики при разработке программ, решающих вычислительные задачи, в которых требуются получать решения с предельно возможной максимальной точностью. Поэтому необходимо систему чисел с плавающей запятой наглядно и информативно представить студентам так, чтобы они поняли их особенности и учитывали эти особенности при решении своих задач. Лучшим решением проблемы является создание студентом программы, оперирующей с вещественными числами, в которой рост погрешности может быть явно отслежен.

В данной статье приводится методика разработки требований к компьютерной программе, генерирующую систему чисел с плавающей запятой и обеспечивающей наглядное их представление, с целью улучшения качества обучения студентов по информатике и программированию.

Ниже представлены пользовательские требования [2] к программе.

Требование № 1. Для достижения бизнес-цели необходимо сгенерировать систему чисел с плавающей запятой для наглядного представления их студентам. На входе программы будет основание системы счисления в, а на выходе множество чисел, составляющих систему счисления.

Требование № 2. По заданному основанию системы счисления в и заданной точности t необходимо сгенерировать мантиссу числа с плавающей запятой. Мантисса необходима для формирования системы чисел с плавающей запятой и представляет собой матрицу размера г% где г= в - число строк матрицы, t - число столбцов матрицы, в - основание системы счисления, 0 < й^ < Р — 1 для всех i=0, 1,..., ^1. На вход программы будут подаваться два параметра и , а на выходе будет мантисса. По заданным границам области изменения экспоненты в виде соотношения Ъ < е < и требуется сгенерировать и наглядно продемонстрировать множество возможных значений экспоненты, которые представляют целые числа. На вход программы будут подаваться параметры и , а на выходе - множество возможных значений экспоненты

Требование № 3. Необходимо графически представить систему чисел с плавающей запятой компьютерной арифметики для наглядной демонстрации свойств такой системы, отличающих ее от системы чисел натуральной арифметики. Прежде всего, это свойство «зернистости и неравномерности распределения» чисел на графической оси [3].

Ниже приведен список спецификаций требований (БЯБ) [2] к обучающей программе.

SRS 1. Программа должна позволить пользователю вводить набор следующих параметров, определяющих однозначно конкретную систему чисел с плавающей запятой: Д t, L, и.

SRS 2. Для заданного основания системы счисления программа должна генерировать и демонстрировать саму эту систему счисления - определенный набор цифр, формирующих эту систему.

SRS 3. Программа должна для заданного основания системы счисления Д и заданной точности t сгенерировать и продемонстрировать множество мантисс числа с плавающей запятой. Мантисса {й0й 1 ...йI ...й£ _ 1гЬ = 2,3, ...} - это прямоугольная матрица D(r, где г = Рг - число строк матрицы, а t - число столбцов. Строки такой матрицы составлены из всевозможных сочетаний цифр , допустимых для данного основания счисления.

SRS 4. Для заданного основания системы счисления Д и заданной точности t программа должна сгенерировать и демонстрировать вектор В = { 1 . ■ размера (Ьх 1) .

SRS 5. Программа должна иметь возможность для заданного основания системы счисления Д и заданной точности t сгенерировать мантиссу числа с плавающей запятой в виде матрицы О (г,Ь), умножить эту матрицу на одномерный вектор В (Ь,1) и продемонстрировать в упорядоченном виде полученный числовой вектор О В размера ( гх 1).

SRS 6. Для заданного основания системы счисления Д точности t и диапазона изменения экспонентов программа должна вычислять выражение где

ВеЬЬа(е) - числовая функция с областью определения вида {р1,[>1+1, .. ., Ри_1 ,Ри }. Это выражение представляет собой набор такого количества векторов ВеЬЬа( е) , сколько имеется значений экспонент. В результате будет получен полный набор чисел в количестве (и — I + 1) * Р1. Если среди этих чисел будут одинаковые числа, то требуется сформировать новый набор чисел только из чисел, отличающихся друг от друга по значению и продемонстрировать полученный числовой вектор.

SRS 7. Программа должна из множества чисел {О(г,Ь)*В(Ь,1 )*ВеЬЬа(е), 1<е<и}, которое можно описать в развернутом виде, как

{x}={DB(r,1)*Betta(L), DB(r,1)*Betta(L+1),., DB(r,1)*Betta(U-1), (1) DB(r,1)*Betta(U)},

сформировать новое множество чисел, которое удовлетворяет условию и продемонстрировать полученный числовой вектор.

SRS 8. Из множества {у} чисел, которое удовлетворяет условию {у} = и РЪ < { х} < ОРЪ , программа должна сформировать точно такое же количество отрицательных чисел и продемонстрировать полученный числовой вектор. Это множество чисел состоит только из отрицательных чисел, находящихся в диапазоне от до .

SRS 9. Программа должна к множеству {у} чисел, которое удовлетворяет условию {у} = иРЪ < {х} < О РЪ, добавить множество чисел {—у}. Добавив к этому объединенному множеству еще число «ноль», программа должна показать полученное множество чисел. Это

множество чисел и представляет собой требуемую систему чисел с плавающей запятой, соответствующую заданному набору входных параметров {Р ; £ ; [ и/Ь, О]}. Количество таких чисел (М) определяется следующей формулой:

N = 2*03-1)* Р £ - 1 * (и -1 + 1). (2)

Правильность этой формулы легко проверить. Цифра «2» означает, что имеется два знака числа. Сомножитель ( | — 1 ) - возможное количество значений первой цифры мантиссы с1 0. Составляющая связана с тем, что каждая составляющая мантиссы числа с плавающей запятой di (для всех £ = 1,2,. . .£ — 1 ) имеет возможность принимать | значений в диапазоне [ Составляющая связана с тем, что экспонента может

принимать такое количество целых значений, которое определяется границами диапазона [Ь, и] . Цифра «1» в формуле добавлена, чтобы учесть нулевое значение.

Ж? 9. Программа должна графически представить систему чисел с плавающей запятой для наглядной демонстрации свойств и особенностей такой системы, отличающих ее от системы чисел натуральной арифметики.

Авторами была разработана программа по вышепредставленной спецификации требований. На рисунках 1 и 2 приведены в качестве примера графики распределения множества чисел для системы чисел с плавающей запятой при значениях параметров р =2, 1=3 и р =2, 1=2 соответственно. Эти рисунки наглядно демонстрирует два главных свойства системы чисел компьютерной арифметики: во-первых, множество чисел является конечным и их количество определяется формулой (2), во-вторых, числа неравномерно распределены в диапазоне [ и/Ь, О/7!] . В первом случае (рис. 1) машинная точность (или ошибка округления) равна 0.125, во втором (рис. 2) - 0.25.

Разработанная программа поможет студентам направления «Программная инженерия» приобрести четкое и ясное знание того, с какими числами оперирует любое приложение. Кроме того, она поможет разработчику вычислительной программы более четко формулировать требования к разрабатываемой программе.

4 -3,5 -3 -2,5 -2 -1.5 -1 45 0 (.5 1 1.5 2 2,5 3 35 4 -3.75 -3.25 -2.55 -2.25 -1.75 -1.25 4.75 4.25 (25 (.75 125 1.75 225 2.75 325 3.75

Рис. 1. Распределение чисел при ß =2, t=3; L= —1; U=1; Eps=0.125

-3 -2.5 -2 -1.5 -1 45 0 0.5 1 1.5 2 2.5 3

Рис. 2. Распределение чисел при ß =2, t=2; L= —1; U=1; Eps=0. 25 Список литературы / References

1. IEEE Std 754-2008. Standard for Binary Floating-Point Arithmetic. IEE. [Electronic resource]. 2008. URL: https://www.csee.umbc.edu/~tsimo1/CMSC455/IEEE-754-2008.pdf/ (date of access: 30.03.2017).

2. Wiegers K., Beatty J. Software Requirements. Third Edition. Redmond. Microsoft Press of Microsoft Corporation: Karl Wiegers and Seilevel, 2013. P. 673.

3. Michael T. Heath. Scientific Computing. An Introductory Survey. The McGraw - Hill Companies, 1996. P. 408.

i Надоели баннеры? Вы всегда можете отключить рекламу.