Рассказы о математике с примерами на языках python и c

Дмитрий Елисеев

Рассказы о математике с примерами на языках Python и C

Версия текста 1.0. (с) 2017

Введение

Рассказы о математике с примерами на языках Python и C - img_1.jpeg

Как сказал еще Галилей, «Книга природы написана на языке математики», и с этим сложно не согласиться. Математика это универсальный язык науки, это базовые принципы, на которых построена вся Вселенная. 2 + 2 = 4 независимо от того, верим мы в это или нет, знаем мы это или нет, существуем мы вообще или нет, и это будет верно не только для нас, но и для жителя Альфы Центавра.

Из этого следует важное правило: математические законы нельзя придумать, их можно только открыть. Треугольник подчинялся теореме Пифагора еще до того, как Пифагор открыл и сформулировал известную теорему. Число Пи было вычислено в древнем Китае, но его значение было таким всегда — еще до того как появился не только Китай, но и наша планета Земля.

Именно поэтому я надеюсь, что кто-то из читателей с помощью этой книги откроет для себя в математике что-то новое. Увы, в представлении большинства, математика — это достаточно скучная наука, вероятно так ее преподают в школе. Если кто-то с помощью этой книги найдет для себя что-то новое, можно считать что время было потрачено не зря.

Эта книга не задачник, а скорее сборник рассказов о тех или иных математических вопросах. Т. к. математические примеры без цифр бессмысленны, «практическая» часть дается на языках программирования Python и Си.

Номер версии в заголовке указан неслучайно. Эта книга не закончена, и по мере появления каких-то новых интересных вопросов она будет дополняться. Желающие также могут присылать свои истории или задачи по адресу [email protected].com, наиболее интересные из них будут включены в текст. Обо найденных неточностях также просьба писать на этот адрес.

Книга распространяется бесплатно в электронном виде. Печатную версию желающие могут сделать себе самостоятельно. В архиве также приложены все файлы программ. Наличие новой версии можно проверить на странице http://dmitryelj.spb.ru/math.htm.

Приятного чтения.

Елисеев Дмитрий

История версий текста: 04.2017 — 1.0

1. Основы языков Python и Си

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

Для использования языка Python нужно установить интерпретатор языка с сайта https://www.python.org/downloads/ или воспользоваться онлайн-версией, например на странице https://repl.it/languages/python3. Все примеры из книги работоспособны с любой версией языка Python, 2.7 или 3.

Для запуска программы необходимо:

‐ Сохранить файл в Блокноте с любым именем и расширением .py, например test1.py (удобно также создать папку в корне диска C, например C:PythonApps).

‐ Открыть консоль (нажать Win+R и набрать cmd), в консоли набрать команду (без кавычек) «python путь_к_файлу.py», например «python C:PythonAppstest1.py».

Как более удобный вариант, можно скачать бесплатную среду разработки PyСharm community edition, и редактировать и запускать файлы в ней. Скачать PyСharm можно со страницы https://www.jetbrains.com/pycharm/download/.

Для запуска программы на языке Си, ее сначала надо сохранить файле с расширением .c, и выполнить команду «gcc имя_файла.c». Будет создан exe-файл, который можно запустить.

Минимальная программа на Си выглядит так:

#include <stdio.h>

int main()

{

  printf("Hello worldn");

  return 0;

}

Рассмотрим простые примеры использования.

Объявление и вывод переменных

Python: достаточно ввести имя и значение.

x = 3 y = 10

print("x=", x)

print(x + y)

В отличие от языка C++, тип переменной будет определен автоматически, указывать его не нужно. Кстати, его можно узнать, введя

print (type(x))

.

: необходимо указать тип и значение переменной.

int x = 3;

int y = 10;

printf("x=%dn", x);

printf("%dn", x+y);

Циклы

В отличие от того же С++ или Java, циклы задаются отступами, что после других языков программирования может быть непривычным. Часть кода, находящаяся внутри цикла, будет выполнена заданное количество раз.

Python

Вывод чисел от 1 до 9:

for p in range(1, 10):

    print (p)

Вывод чисел от 1 до 9 с шагом 2:

for p in range(1, 10, 2):

    print (p)

Си

Вывод чисел от 1 до 9:

for(int i=1; i<10; i++) {

  printf("%dn", i);

}

Вывод чисел от 1 до 9 с шагом 2:

for(int i=1; i<10; i+=2) {

  printf("%dn", i);

}

Массивы

Массив это линейный набор чисел, с которыми удобно выполнять однотипные операции, например вычисление суммы или среднего арифметического.

Python

Объявляем массив чисел:

values = [1, 2, 3, 5, 10, 15, 20]

Добавляем элемент в массив:

values.append(7)

Выводим массив на экран:

print(values)

Выводим элементы массива построчно:

for p in values:

    print(p)

Это же можно сделать с помощью индексов (нумерация элементов массива начинается с 0):

for i in range(0, len(values)):

    print (values[i])

Си: Динамические массивы поддерживаются только в C++, статические массивы создаются так:

int values[7] = { 1,2,3,5,10,15,20 };

for(int i=0; i<7; i++) {

Версия текста 1.10. (с) 2018

Введение

Как сказал еще Галилей, “Книга природы написана на языке математики”, и с этим сложно не согласиться. Математика это универсальный язык науки, это базовые принципы, на которых построена вся Вселенная. 2+2=4 независимо от того, верим мы в это или нет, знаем мы это или нет, существуем мы вообще или нет, и это будет верно не только для нас, но и для жителя Альфы Центавра.

Из этого следует важное правило: математические законы нельзя придумать, их можно только открыть. Треугольник подчинялся теореме Пифагора еще до того, как Пифагор открыл и сформулировал известную теорему. Число Пи было вычислено в древнем Китае, но его значение было таким всегда — еще до того как появился не только Китай, но и наша планета Земля.

Именно поэтому я надеюсь, что кто-то из читателей с помощью этой книги откроет для себя в математике что-то новое. Увы, в представлении большинства, математика — это достаточно скучная наука, вероятно так ее преподают в школе. Если кто-то с помощью этой книги найдет для себя что-то новое, можно считать что время было потрачено не зря.

Эта книга не задачник, а скорее сборник рассказов о тех или иных математических вопросах. Т.к. математические примеры без цифр бессмысленны, “практическая” часть дается на языках программирования Python и Си.

Номер версии в заголовке указан не случайно. Эта книга не закончена, и по мере появления каких-то новых интересных вопросов она будет дополняться. Желающие также могут присылать свои истории или задачи по адресу dmitryelj@gmail.com, наиболее интересные из них будут включены в текст. Обо найденных неточностях также просьба писать на этот адрес.

Приятного чтения.

Елисеев Дмитрий

История версий текста

04.2017 — 1.0

09.2017 — 1.1, 1.2 — добавлены главы 19 и 20 про нейронные сети

11.2017 — 1.3, добавлена глава 21 про фракталы

11.2017 — 1.4, дополнена глава 7 про магические квадраты, добавлены главы 22 и 23 про “горн Гавриила” и построение графиков функций, в “Приложения” добавлен пример оптимизации кода на Python.

12.2017 — 1.5, дополнена глава 4 про шарообразность Земли.

01.2018 — 1.6, добавлена глава 24 про точность компьютерных вычислений, глава 25 про календарь, добавлено Приложение 4.

03.2018 — 1.7, добавлена глава 21 про использование библиотеки TensorFlow.

04.2018 — 1.8, добавлена глава 27 про азартные игры.

04.2018 — 1.9, добавлена глава 28 про теорему Пифагора.

10.2018 — 1.10, добавлена глава 29 про abc-гипотезу, дополнена глава про простые числа, дополнена глава о “магических квадратах”, улучшено форматирование кода.

1. Основы языков Python и Си

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

Для использования языка Python нужно установить интерпретатор языка с сайта https://www.python.org/downloads/ или воспользоваться онлайн-версией, например на странице https://repl.it/languages/python3. Все примеры из книги тестировались на Python версии 2.7.

Для запуска Python-программы необходимо:

— Сохранить файл в Блокноте с любым именем и расширением .py, например test1.py.

— Открыть консоль (нажать Win+R и набрать cmd), в консоли набрать команду (без кавычек) “python путь_к_файлу.py”, например “python C:PythonAppstest1.py”.

Как более удобный вариант, можно скачать бесплатную среду разработки PyСharm community edition, и редактировать и запускать файлы в ней. Скачать PyСharm можно со страницы https://www.jetbrains.com/pycharm/download/.

Кстати, чтобы запустить короткую программу на Python, ее необязательно сохранять в файл, код можно ввести непосредственно в интерпретатор. Для этого достаточно запустить (Win+R) программу python.exe и просто ввести подряд соответствующие строки:

Для запуска программы на языке Си, ее сначала надо сохранить файле с расширением .c, и выполнить команду “gcc имя_файла.c”. Будет создан exe-файл, который можно запустить. Бесплатный компилятор С/C++ можно установить с помощью утилиты mingw-get, скачать которую можно на странице https://sourceforge.net/projects/mingw/files/. Также можно воспользоваться и любой онлайн-версией c++ компилятора, например этой.

Минимальная программа на Си выглядит так:

#include <stdio.h>

int main()

{

printf(«Hello worldn»);

return 0;

}

Рассмотрим простые примеры использования.

Объявление и вывод переменных

Python: достаточно ввести имя и значение.

x = 3

y = 10

print(«x=», x)

print(x+y)

В отличие от языка С++, тип переменной будет определен автоматически, указывать его не нужно. Его можно при необходимости узнать, введя print (type(x)).

Важно иметь в виду, что синтаксис функции print в версиях Python 2.7 и 3.0 разный. В Python 2.7 можно написать print x, y, но в Python 3.0 такой код вызовет ошибку, нужно использовать круглые скобки и писать print(x, y). Код со скобками будет работать в обеих версиях Python, поэтому в примерах используется именно он.

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

: необходимо явно указать тип и значение переменной.

int x = 3;

int y = 10;

printf(«x=%dn», x);

printf(«%dn», x+y);

Циклы

В отличие от того же С++ или Java, циклы в Python задаются отступами, что после других языков программирования может быть непривычным. Часть кода, находящаяся внутри цикла, будет выполнена заданное количество раз.

Python

Вывод чисел от 1 до 9:

for p in range(1,10):

print(p)

Для сравнения, вот такой код без отступов работать не будет, и это важно помнить, например при копировании кода из этой книги:

for p in range(1,10):

print(p)

Вывод чисел от 1 до 9 с шагом 2:

for p in range(1,10,2):

print(p)

Кстати, в Python 2.7 функция range возвращает объект “список”, и соответственно выделяет память заданного размера. Для большинства примеров в книге это не критично, но если нужно написать код типа for p in range(1,10000000), то range следует заменить на xrange, в противном случае программа вполне может занять гигабайт памяти даже на простом с виду цикле. Для Python 3.xx это не требуется.

Си

Вывод чисел от 1 до 9:

for(int i=1; i<10; i++) {

printf(«%dn», i);

}

Вывод чисел от 1 до 9 с шагом 2:

for (int i=1; i < 10; i += 2) {

printf(«%dn», i);

}

Массивы

Массив это линейный набор чисел, с которыми удобно выполнять однотипные операции, например вычисление суммы или среднего арифметического.

Python:

Объявляем массив чисел:

values = [1,2,3,5,10,15,20]

Добавляем элемент в массив:

values.append(7)

Выводим массив на экран:

print(values)

Выводим элементы массива построчно:

for p in values:

print(p)

Это же можно сделать с помощью индексов (нумерация элементов массива начинается с 0):

for i in range(0, len(values)):

print(values[i])

Можно получить и значение и индекс сразу, иногда это удобно.

for i, item in enumerate(mylist):

       print(i, item)

Можно создать массив определенного размера, заполненный определенными числами. Создадим массив из 100 элементов, заполненный нулями.

values = [0.0] * 100

print(values)

Есть немного более сложный, но и более гибкий вариант создания массива. Создадим массив из 100 элементов, заполненный нулями:

values = [0.0 for i in range(100)]

Создадим массив, заполненный числами 0,1,..,99:

values = [i for i in range(100)]

Создадим массив, заполненный квадратами чисел:

values = [i*i for i in range(100)]

Создать двухмерный массив в Python также несложно:

matrix4x4 = [ [0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0]]

matrix4x4[0][0] = 1

print(matrix4x4)

Аналогично вышеописанному способу, можно создать 2х-мерный массив 100×100:

values100x100 = [[0.0 for j in range(100)] for i in range(100)]

Си:

Динамические массивы поддерживаются только в C++, статические массивы создаются так:

int values[7] = {1, 2, 3, 5, 10, 15, 20};

for (int i=0; i < 7; i++) {

printf(«%dn», values[i]);

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

  • 510
  • 0
  • 0

Скачать книгу в формате:

  • fb2
  • epub
  • rtf
  • mobi
  • txt

Аннотация

Вниманию читателей представляется книга «Рассказы о математике с примерами на языках Python и C». В книге описаны различные истории или задачи, прямо или косвенно связанные с математикой (магические квадраты, простые числа и пр). Кратко рассмотрены более сложные моменты, например выполнение вычислений с помощью GPU.

Книга распространяется бесплатно, скачать оригинал в PDF можно на странице http://www.dmitryelj.spb.ru/math.htm.

ЕЩЕ

Популярные книги

  • Империя ангелов

    • Читаю
    • В архив
    • 58175
    • 9
    • 1

    Аннотация:

    Бернард ВЕРБЕР ИМПЕРИЯ АНГЕЛОВ Посвящается Веронике 1. ЗА КУЛИСАМИ РАЯ Тремя путями мудрости…

    Блок — 15 стр.

  • Соперник (ЛП)

    • Читаю
    • В архив
    • 47470
    • 23
    • 0

    Аннотация:

    Пенелопа Дуглас Соперник Пролог Фэллон Были люди, которые мне нравились и которые не нрав…

    Блок — 13 стр.

  • Как приручить кентавра, или Дневник моего сна

    • Читаю
    • В архив
    • 53595
    • 46
    • 9

    Аннотация:

    Думала ли Рая, затевая уборку дома, что ударится головой и очнётся в ином мире? А там она, свобо…

    Блок — 17 стр.

  • Бандит

    • Читаю
    • В архив
    • 51505
    • 169
    • 27

    Аннотация:

    Сорокалетний спецназовец, боец ЧВК в Сирии попадает в ловушку, устроенную ИГИЛ. Джип, в котором он …

    Блок — 24 стр.

Здравствуй уважаемый читатель. Книга «Рассказы о математике с примерами на языках Python и C» Елисеев Дмитрий Сергеевич относится к разряду тех, которые стоит прочитать. Благодаря уму, харизме, остроумию и благородности, моментально ощущаешь симпатию к главному герою и его спутнице. Помимо увлекательного, захватывающего и интересного повествования, в сюжете также сохраняется логичность и последовательность событий. Замечательно то, что параллельно с сюжетом встречаются ноты сатиры, которые сгущают изображение порой даже до нелепости, и доводят образ до крайности. Попытки найти ответ откуда в людях та или иная черта, отчего человек поступает так или иначе, частично затронуты, частично раскрыты. Благодаря живому и динамичному языку повествования все зрительные образы у читателя наполняются всей гаммой красок и звуков. Финал немножко затянут, но это вполне компенсируется абсолютно непредсказуемым окончанием. Не часто встретишь, столь глубоко и проницательно раскрыты, трудности человеческих взаимосвязей, стоящих на повестке дня во все века. Чувствуется определенная особенность, попытка выйти за рамки основной идеи и внести ту неповторимость, благодаря которой появляется желание вернуться к прочитанному. Интрига настолько запутанна, что несмотря на встречающиеся подсказки невероятно сложно угадать дорогу, по которой пойдет сюжет. Яркие пейзажи, необъятные горизонты и насыщенные цвета — все это усиливает глубину восприятия и будоражит воображение. «Рассказы о математике с примерами на языках Python и C» Елисеев Дмитрий Сергеевич читать бесплатно онлайн, благодаря умело запутанному сюжету и динамичным событиям, будет интересно не только поклонникам данного жанра.

Читать Рассказы о математике с примерами на языках Python и C

Новинки

Хроники любви

  • 6
  • 0
  • 0

Аннотация:

Два не свободных от семейных уз человека встретились на просторах виртуального пространства и пос…

Фрагмент — 11 стр.

Два не свободных от семейных уз человека встретились на просторах виртуального пространства и пос…

В плену его порока

  • 19
  • 0
  • 0

Аннотация:

— Ты уверена, что готова на это? Я больше не буду терпеть «динамо».
С замиранием сердца читаю нов…

Фрагмент — 16 стр.

— Ты уверена, что готова на это? Я больше не буду терпеть «динамо».
С замиранием сердца читаю нов…

Призрак Шерлока Холмса

  • 7
  • 0
  • 0

Аннотация:

Молодой журналист сталкивается с запутанной историей убийства и сам едва не погибает. Тайный помо…

Фрагмент — 9 стр.

Молодой журналист сталкивается с запутанной историей убийства и сам едва не погибает. Тайный помо…

Лесничий

  • 9
  • 0
  • 0

Аннотация:

История о том, как начинающий волшебник из королевства Афанасия сбежал от своего учителя и скрылс…

Фрагмент — 12 стр.

История о том, как начинающий волшебник из королевства Афанасия сбежал от своего учителя и скрылс…

В доме печали, или Жизнеописание барона Бернара де Монрагу

  • 7
  • 0
  • 0

Аннотация:

Удастся ли романтичному поэту Бернару де Монрагу достичь счастья с прекрасной, как звезда Аделаид…

Фрагмент — 3 стр.

Удастся ли романтичному поэту Бернару де Монрагу достичь счастья с прекрасной, как звезда Аделаид…

Пророчество

  • 8
  • 0
  • 0

Аннотация:

Четвертая книга о Соне Травиной. Пора подвести итоги, раскрыть тайны и принять важное решение. А …

Фрагмент — 10 стр.

Четвертая книга о Соне Травиной. Пора подвести итоги, раскрыть тайны и принять важное решение. А …

Танюшкины рассказы

  • 7
  • 0
  • 0

Аннотация:

Это первая книга. Сюжет приснился как-то ночью. Книга посвящена добру, милосердию к ближним, о тр…

Фрагмент — 0 стр.

Это первая книга. Сюжет приснился как-то ночью. Книга посвящена добру, милосердию к ближним, о тр…

  • Рассказы о маме для детей 9 10 лет
  • Рассказы о маме 2 класс внеклассное чтение
  • Рассказы о мальчиках и девочках л пантелеев честное слово распечатать текст
  • Рассказы о майоре пронине аудиокнига слушать
  • Рассказы о лесе русских писателей