КулЛиб - Классная библиотека! Скачать книги бесплатно
Всего книг - 719132 томов
Объем библиотеки - 1437 Гб.
Всего авторов - 276109
Пользователей - 125330

Новое на форуме

Новое в блогах

Впечатления

medicus про Демина: Не выпускайте чудовищ из шкафа (Детективная фантастика)

Очень. Рублёные. Фразы. По несколько слов. Каждая. Слог от этого выглядит специфическим. Тяжко это читать. Трудно продираться. Устал. На 12% бросил.

Рейтинг: +1 ( 1 за, 0 против).
kiyanyn про Деревянко: Что не так со структурой атомов? (Физика)

Первый признак псевдонаучного бреда на физмат темы - отсутствие формул (или наличие тривиальных, на уровне школьной арифметики) - имеется :)

Отсутствие ссылок на чужие работы - тоже.

Да эти все формальные критерии и ни к чему, и так видно, что автор в физике остановился на уровне учебника 6-7 класса. Даже на советскую "Детскую энциклопедию" не тянет.

Чего их всех так тянет именно в физику? писали б что-то юридически-экономическое

  подробнее ...

Рейтинг: +3 ( 3 за, 0 против).
Влад и мир про Сомов: Пустой (СИ) (Боевая фантастика)

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

  подробнее ...

Рейтинг: +2 ( 2 за, 0 против).
Влад и мир про Nezloi: Первый чемпион Земли 2 (Боевая фантастика)

Мне понравились обе книги.

Рейтинг: +2 ( 2 за, 0 против).
Влад и мир про ezh: Всадник Системы (Попаданцы)

Прочитал обе книги с удовольствием. Спасибо автору!

Рейтинг: +1 ( 1 за, 0 против).

Рассказы о математике [Дмитрий Елисеев] (fb2) читать постранично, страница - 22


 [Настройки текста]  [Cбросить фильтры]

class="book">print("Sum = {}, T = {}s".format(s, time.time() - start_time))


Результаты работы:

Sum = 333333833333500000, T = 0.32s


Быстрее, но лишь чуть-чуть. К тому же, данный код хранит весь массив в памяти, что неудобно.


И наконец, призываем “тяжелую артиллерию”: напишем программу на языке C. Код выглядит так:

#include <stdio.h>

#include <time.h>


int main()

{

clock_t start = clock();


unsigned long long int sum = 0, i;

for(i=1; i<1000001; i++) {

sum += i*i;

}


clock_t end = clock();

printf("Sum = %llu, T = %fs", sum, (float)(end - start)/CLOCKS_PER_SEC);

return 0;

}


Как можно видеть, он ненамного сложнее python-версии. Перед запуском программы, ее надо скомпилировать, выполнив команду C:\GCC\bin\gcc.exe "Appendix-2 - speedTest.c" -o"Appendix-2 - speedTest". Результат очевиден: T = 0.007 секунд. И еще чуть-чуть: добавляем флаг оптимизации по скорости, выполнив команду C:\GCC\bin\gcc.exe "Appendix-2 - speedTest.c" -o"Appendix-2 - speedTest" -O3. Результат: 0.0035 секунд, разница в быстродействии более 100 раз!


Увы, в более сложных задачах такого прироста реально не бывает (в последнем примере очень короткий код, который видимо полностью помещается в кеш-памяти процессора), но на некоторое улучшение быстродействия можно рассчитывать. Хотя переписывание программы - это крайний случай, сначала целесообразно поискать стандартные библиотеки, которые возможно уже решают данную задачу. К примеру, следующий код на языке Python, вычисляет сумму элементов массива за 0.1с:

a = range(1000001)

s = 0

for x in a:

s += x

print(s)


Можно использовать встроенную функцию sum:

a = range(1000001)

s = sum(a)

print(s)


Данный код выполняется за 0.02 секунды, т.е. в 5 раз быстрее первого варианта. Но разумеется, если заранее известно, что задача состоит в обработке большого набора чисел (например поиск простых чисел или магических квадратов), то может быть более целесообразным сразу писать программу на С или С++, в принципе это не намного сложнее, а работать программа будет быстрее.


Заключение

На этом данная книга закончена, хотя надеюсь, что не навсегда - по возможности и по мере появления новых идей, новые главы будут дописываться. Автор надеется, что хоть немного удалось познакомить читателей с увлекательным миром математики и программирования.


Продолжение следует.


Обо найденных неточностях или дополнениях просьба писать на электронную почту dmitryelj@gmail.com. Наличие новой версии можно проверить на странице https://cloud.mail.ru/public/4SGE/oE2EGEWnp.