Программирование на C# для школьников

Числа

Показывать лекцию целиком

Числа в математике

Изначально компьютеры создавались как машины, выполняющие вычисления. Само слово "компьютер" означает "вычислитель". Ранее у нас в стране для обозначения компьютеров использовалась аббревиатура ЭВМ – Электронная Вычислительная Машина.

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

Математика с давних пор изучает числа. Самый простой и естественный вид чисел – это целые положительные числа, которые издавна использовались для обозначения количества предметов (один, два и так далее) и порядка следования предметов (первый, второй и так далее). Такие числа в математике называются натуральными. В математике есть некоторый спор, является ли число "ноль" натуральным? Мы будем относить 0 к натуральным числам. Натуральных чисел бесконечно много. За каждым натуральным числом следует число, на единицу больше предыдущего. Для обозначения бесконечности ряда натуральных чисел в математике придуман специальный символ бесконечности - \infinity.

Натуральные числа: 0, 1, 2, …, 10, 11, 12, ..., 1000, 1001, 1002, ....

Следующий вид чисел – это целые числа, которые могут быть как положительными, так и отрицательными.

Целые числа: ... -2, -1, 0, 1, 2, ....

Следующий вид чисел – это дробные числа. Рациональные числа – это дроби вида m/n, где m и n – это целые числа. Одно и тоже рациональное число может быть представлено бесконечным числом дробей, например, 1/2 = 2/4 = -2/-4 = 3/6 = ... = 100/200 = ... = 2000/4000 = ....

Единственным представителем множества равных рациональных чисел является число, представленное дробью - m/n, где m и n взаимно несократимы. Для приведенного выше ряда таким представителем является дробь 1/2 ..

Рациональные числа чаще всего записывают в виде десятичного числа с целой и дробной частью. Например, рациональное число 1/2 представимо числом 0,5, а рациональное число 12/5 представимо числом 2,4. Для некоторых рациональных чисел дробная часть десятичного числа может быть представлена бесконечной периодической дробью. Например, рациональное число 1/3 представимо десятичным числом 0,6666666..., что записывают в виде 0,(6).

В результате выполнения некоторых операций над числами могут появляться новые виды чисел, не являющиеся ни целыми, ни рациональными. Иррациональные числа – это числа, представленные десятичным числом, дробная часть которых является бесконечной непериодической дробью. Такие числа существуют. Наиболее известным примером иррационального числа является число, имеющее собственное имя, – число \pi, задающее отношение длины окружности к ее диаметру. Это отношение не может быть выражено никаким рациональным, тем более целым числом. Другим классическим примером иррациональных чисел являются числа вида \sqrt p, где p – простое число.

Натуральные, целые, рациональные и иррациональные числа называют вещественными числами. Но некоторые операции над вещественными числами приводят к числам, не являющихся вещественными. Извлечение корня квадратного корня из отрицательных чисел приводит к числам, называемых \sqrt мнимыми. Число \sqrt {-1} называется мнимой единицей и обозначается латинской буквой i. Числа вида a+b*i называются комплексными, где a и b – это вещественные числа, i – мнимая единица.

Давайте докажем, что \sqrt 2 – число иррациональное. Для доказательства истинности этого утверждения будем использовать метод доказательства, называемый методом доказательства "от противного".

Теорема (о существовании иррациональных чисел)

\sqrt 2 – число иррациональное.

Доказательство (от противного).

Предположим, что \sqrt 2 - число рациональное, то есть \sqrt 2 = m/n (m, n целые, взаимно несократимые числа), следовательно 2 = m2/n2, и n2= m2/2, значит m2 делится нацело на 2 и m2 – число четное и m – число четное (квадрат нечетного числа является нечетным числом), следовательно m = 2*k и m2 = 4*k2 , а значит и k2= n2/2, то есть n делится нацело на 2 и m и n взаимно сократимы.

Пришли к противоречию. Утверждение "m и n взаимно сократимы" ложно. Отсюда следует, что и исходная посылка вывода "\sqrt 2 - число рациональное" является ложным утверждением. Следовательно, √2 не является рациональным числом. Число \sqrt 2 - вещественное иррациональное число. Оно представимо бесконечной непериодической дробью.

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

Доказательство основано на свойстве логической операции, называемой импликацией или операции следования Q → R (посылка Q влечет заключение R). Когда импликация истинна (вывод построен корректно), а заключение ложно, то это может быть только в том случае, если посылка Q ложна. Подробнее об импликации и законах логики можно прочесть в моем курсе для школьников "Введение в логику", опубликованном на сайте Интернет университета ИТ (intuit.ru).

Числа в программировании

В программировании числа устроены проще чем в математике. Конечно, есть целые числа и компьютеры могут выполнять различные операции над целыми числами. Но множество целых чисел является конечным множеством – это числа из некоторого конечного интервала. Обычно в программировании целые числа делятся на подтипы. Каждый подтип характеризуется своим интервалом, содержащим целые числа. Мы с вами будем писать программы на языке C#, в котором довольно много различных подтипов целых чисел. Но на первом этапе нам достаточно использовать один подтип целых чисел, называемый типом int (от слова integer – целое). Типу int принадлежат целые числа из интервала –[- 231 - +231 – 1]. В этот интервал попадают все целые положительные и отрицательные числа от 0 до двух миллиардов. Для большинства задач чисел из этого диапазона вполне достаточно.

Конечно же, в программировании можно работать и с десятичными числами, имеющими целую и дробную часть. Но и здесь рассматривается конечное множество чисел, каждое из которых имеет конечное число цифр. Никаких бесконечных непериодических и периодических дробей в программировании нет. Десятичные числа в программировании называются вещественными и также разделяются на подтипы. Опять-таки, на первых порах мы будем использовать один подтип, называемый в языке C# типом double. Числа этого типа можно представить в виде 0,q*10p . Здесь q называется мантиссой числа, а p – десятичным порядком. Числа этого типа находятся в интервале [- 1,79769313486232*10308 - +1,79769313486232*10308].

Мантисса таких чисел содержит 16-17 значащих цифр, а порядок находится в пределах далеко выходящих за порядок чисел, используемых в обычных задачах. Заметим, что порядок может быть также отрицательным числом.

В мире чисел, рассматриваемых в программировании, нет бесконечности и нет иррациональности. С чем связано это ограничение? Дело в том, что числа хранятся в памяти компьютера. Память имеет ограниченные размеры, в ней нужно хранить большое число различных данных. Поэтому для чисел отводится память конечного размера. Размер отводимой памяти для хранения чисел того или иного типа (подтипа), определяет интервал чисел этого типа.

Вернуться к учебному плану