Теория c – Теория C#!!!

Содержание

Тема 2.2. Специальная теория относительности (сто)

O Основные понятия

Принцип относительности Галилея

Принцип относительности (первый постулат Эйнштейна): законы природы инвариантны относительно смены системы отсчёта

Инвариантность скорости света (второй постулат Эйнштейна)

Постулаты Эйнштейна как проявление симметрий пространства и времени

Основные релятивистские эффекты (следствия из постулатов Эйнштейна).

Соответствие СТО и классической механики: их предсказания совпадают при малых скоростях движения (гораздо меньше скорости света)

& Краткое содержание

Принцип относительности— фундаментальный физический принцип. Различают:

  • Принцип относительности классической механики-постулат Г.Галилея, согласно которому в любых инерциальных системах отсчета все механические явления протекают одинаково при одних и тех же условиях. Законы механики одинаковы во всех инерциальных системах отсчёта.

  • Принцип относительности релятивитской механики - постулат А.Эйнштейна, согласно которому в любых инерциальных системах отсчета все физические явления протекают одинаково. Т.е. все законы природы одинаковы во всех инерциальных системах отсчёта.

Инерциальная система отсчета(ИСО) — система отсчета, в которой справедлив закон инерции: тело, на которое не действуют внешние силы, находится в состоянии покоя или равномерного прямолинейного движения.

Всякая система отсчёта, движущаяся относительно ИСО равномерно и прямолинейно, также является ИСО. Согласно принципу относительности, все ИСО равноправны, и все законы физики в них действуют одинаково.

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

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

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

Отцом принципа относительности считается Галилео Галилей, который обратил внимание на то, что находясь в замкнутой физической системе, невозможно определить, покоится эта система или равномерно движется. Во времена Галилея люди имели дело в основном с чисто механическими явлениями. Идеи Галилея нашли развитие в механике Ньютона. Однако с развитием электродинамики оказалось, что законы электромагнетизма и законы механики (в частности, механическая формулировка принципа относительности) плохо согласуются друг с другом. Эти противоречия привели к созданию Эйнштейном специальной теории относительности. После этого обобщённый принцип относительности стал называться «принципом относительности Эйнштейна», а его механическая формулировка — «принципом относительности Галилея».

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

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

На протяжении более 50 лет после появления общей теории относительности в физике ей не придавалось особого значения. Дело в том, что расчеты, производимые на основе общей теории относительности, дают почти такие же ответы, как и вычисления в рамках теории Ньютона, а математический аппарат общей теории относительности намного сложнее. Проводить длинные и трудоемкие расчеты стоило лишь, чтобы разобраться в явлениях, возможных в гравитационных полях неслыханно высокой интенсивности. Но в 1960-х годах, с наступлением эры космических полетов, астрономы начали сознавать, что Вселенная гораздо разнообразнее, чем это представлялось вначале, и что могут существовать такие компактные объекты с высокой плотностью, как нейтронные звезды и черные дыры, в которых гравитационное поле действительно достигает необычайно высокой интенсивности. В то же время развитие вычислительной техники отчасти сняло бремя утомительных расчетов с плеч ученого. В результате общая теория относительности начала привлекать внимание многочисленных исследователей, и в этой области начался бурный прогресс. Были получены новые точные решения уравнений Эйнштейна и найдены новые способы интерпретации их необычных свойств. Более детально была разработана теория черных дыр. Граничащие с фантастикой приложения этой теории указывают на то, что топология нашей Вселенной гораздо сложнее, чем можно было думать, и что могут существовать другие вселенные, отстоящие от нашей на гигантские расстояния и соединенные с ней узкими мостиками искривленного пространства. Не исключено, конечно, что это предположение окажется неверным, но ясно одно: теория и феноменология гравитации – это математическая и физическая страна чудес, которую мы едва начали исследовать.

Два фундаментальных принципа СТО:

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

  • Второй постулат Эйнштейна:инвариантность скорости света (принцип постоянства скорости света: скорость света в вакууме одинакова во всех системах отсчета, движущихся прямолинейно и равномерно друг относительно друга (c=const=3 108 м/с). Скорость света в вакууме не зависит от движения или покоя источника света. Скорость света является предельно возможной скоростью распространения материальных объектов).

Соответствие СТО и классической механики: их предсказания совпадают при малых скоростях движения (гораздо меньше скорости света).

Эйнштейн отказался от понятий пространства и времени Ньютона.

Пространства без материи, как чистого вместилища, не бывает, и геометрия (искривление) мира, и замедление течения времени определяются распределением и движением материи.

Основные релятивистские эффекты(следствия из постулатов Эйнштейна):

  1. времяотносительно, т.е. скорость хода часов определяется скоростью самих часов относительно наблюдателя.

  2. пространство относительно, т.е. расстояние между точками пространства зависит от скорости наблюдателя.

  3. относительность одновременности (если для неподвижного наблюдателя два события одновременны, то для наблюдателя, который движется, – это не так)

  4. относительность расстояний (релятивистское сокращение длин: в движущейся системе отсчета пространственные масштабы укорочены вдоль направления движения)

  5. относительность промежутков времени (релятивистское замедление времени: в движущейся системе отсчета время идет медленнее). Этот эффект проявляется, к примеру, в необходимости корректировать часы на спутниках Земли.

  6. инвариантность пространственно-временного интервала между событиями (интервал между двумя событиями имеет в одной системе отсчета то же самое значение, что и в другой)

  7. инвариантность причинно-следственных связей

  8. единство пространства-времени (пространство и время представляют единую четырехмерную реальность – мы видим мир всегда пространственно-временным.)

  9. эквивалентность массы и энергии

Таким образом,в теории Эйнштейна пространство и время относительны— результаты измерения длины и времени зависят от того, движется наблюдатель или нет.

studfiles.net

Основы специальной теории относительности – FIZI4KA

Специальная теория относительности (СТО) – физическая теория, рассматривающая пространственно-временные свойства физических процессов. Закономерности СТО проявляются при больших (сравнимых со скоростью света) скоростях. Законы классической механики в этом случае не работают. Причина этого заключается в том, что передача взаимодействий происходит не мгновенно, а с конечной скоростью (скоростью света).

Классическая механика является частным случаем СТО при небольших скоростях. Явления, описываемые СТО и противоречащие законам классической физики, называют

релятивистскими. Согласно СТО одновременность событий, расстояния и промежутки времени являются относительными.

В любых инерциальных системах отсчета при одинаковых условиях все механические явления протекают одинаково (принцип относительности Галилея). В классической механике измерение времени и расстояний в двух системах отсчета и сравнение этих величин считаются очевидными. В СТО это не так.

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

Инвариантность скорости света. Принцип относительности Эйнштейна

В 1905 г. Эйнштейн создал специальную теорию относительности (СТО). В основе его теории относительности лежат два постулата:

  • Любые физические явления во всех инерциальных системах отсчета при одинаковых условиях протекают одинаково (принцип относительности Эйнштейна).
  • Скорость света в вакууме во всех инерциальных системах отсчета одинакова и не зависит от скорости источника и приемника света (принцип постоянства скорости света).

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

Следствия из постулатов СТО

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

Относительность расстояний:

где ​\( I_0 \)​ – длина тела в системе отсчета, относительно которой тело покоится, ​\( l \)​ – длина тела в системе отсчета, относительно которой тело движется, ​\( v \)​ – скорость тела.

Это означает, что линейный размер движущегося относительно инерциальной системы отсчета уменьшается в направлении движения.

Относительность промежутков времени:

где ​\( \tau_0 \)​ – промежуток времени между двумя событиями, происходящими в одной точке инерциальной системы отсчета, ​\( \tau \)​ – промежуток времени между этими же событиями в движущейся со скоростью ​\( v \)​ системе отсчета.

Это означает, что часы, движущиеся относительно инерциальной системы отсчета, идут медленнее неподвижных часов и показывают меньший промежуток времени между событиями (замедление времени).

Закон сложения скоростей в СТО записывается так:

где ​\( v \)​ – скорость тела относительно неподвижной системы отсчета, ​\( v’ \)​ – скорость тела относительно подвижной системы отсчета, ​\( u \)​ – скорость подвижной системы отсчета относительно неподвижной, ​\( c \)​ – скорость света.

При скоростях движения, много меньших скорости света, релятивистский закон сложения скоростей переходит в классический, а длина тела и интервал времени становятся одинаковыми в неподвижной и движущейся системах отсчета (принцип соответствия).

Для описания процессов в микромире классический закон сложения неприменим, а релятивистский закон сложения скоростей работает.

Полная энергия

Полная энергия ​\( E \)​ тела в состоянии движения называется релятивистской энергией тела:

Полная энергия, масса и импульс тела связаны друг с другом – они не могут меняться независимо.

Закон пропорциональности массы и энергии – один из самых важных выводов СТО. Масса и энергия являются различными свойствами материи. Масса тела характеризует его инертность, а также способность тела вступать в гравитационное взаимодействие с другими телами.

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

Энергия покоя

Наименьшей энергией ​\( E_0 \)​ тело обладает в системе отсчета, относительно которой оно покоится. Эта энергия называется энергией покоя:

Энергия покоя является внутренней энергией тела.

В СТО масса системы взаимодействующих тел не равна сумме масс тел, входящих в систему. Разность суммы масс свободных тел и массы системы взаимодействующих тел называется дефектом масс – ​\( \Delta m \)​. Дефект масс положителен, если тела притягиваются друг к другу. Изменение собственной энергии системы, т. е. при любых взаимодействиях этих тел внутри нее, равно произведению дефекта масс на квадрат скорости света в вакууме:

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

Это утверждение имеет разнообразные практические применения, включая использование ядерной энергии. Если масса частицы или системы частиц уменьшилась на \( \Delta m \), то при этом должна выделиться энергия ​\( \Delta E=\Delta m\cdot c^2 \)​.

Кинетическая энергия тела (частицы) равна:

Важно!
В классической механике энергия покоя равна нулю.

Релятивистский импульс

Релятивистским импульсом тела называется физическая величина, равная:

где ​\( E \)​ – релятивистская энергия тела.

Для тела массой ​\( m \)​ можно использовать формулу:

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

Важно!
Закон сохранения релятивистского импульса является фундаментальным законом природы.

Классический закон сохранения импульса является частным случаем универсального закона сохранения релятивистского импульса.

Полная энергия ​\( E \)​ релятивистской частицы, энергия покоя ​\( E_0 \)​ и импульс ​\( p \)​ связаны соотношением:

Из него следует, что для частиц с массой покоя, равной нулю, ​\( E_0 \)​ = 0 и ​\( E=pc \)​.

Основные формулы раздела «Основы специальной теории относительности»

Основы специальной теории относительности

Оценка

fizi4ka.ru

теория игр | C++ для приматов

Задача:
http://cpp.mazurok.com/word-of-the-week/идём-к-ним/

Изначально я решил написать программу в которой будут соединенны два решения: для задачи в которой можно сесть не более половины зерен, а так же для той задаче в которой максимальное съеденное число зерен задавалось пользователем. Я реализовал это достаточно просто: если m равна нулю во-второй задаче, то задача просто не имеет решения(как и смысла вообщем-то), именно поэтому я решил использовать нулевое m как показатель того что заданы параметры или для первой задачи.

if( m == 0 ) //если m равна нулю, то игроки могут съесть не более половины заданного n

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

Число зерен Сколько нужно отнять зерен Комментарий Число зерен Сколько нужно отнять зерен Комментарий
1 0 П 9 2 В
2 1 В 10 3 В
3 0 П 11 4 В
4 1 В 12 5 В
5 2 В 13 6 В
6 3 В 14 7 В
7 0 П 15 0 П
8 1 В

В — Выигрышный вариант существует
П — Нет выигрышного варианта

Исходя из выше описанной таблицы вполне ясно виден алгоритм, так как выигрышный вариант отсутствовал только в случаях, где число зерен соответсвовало данной формуле: [latex]{ 2 }^{ n }-1[/latex]. тогда все что от нас требуется это найти найти такое число по этой формуле при котором количество зерен будет равно или меньше данного числа.

for( int i=1 ; r<n ; i++ ){

r++;

r=r<<1;

r--;    // 2^i-1

  }

Если изначальное число зерен будет меньше полученного числа, то выигрышный вариант существует и все что от нас требуется, так это найти предыдущее число ( иными словами нужно найти [latex]{ 2 }^{ n-1 }-1[/latex]) и узнать сколько же зерен нужно отнять чтобы сделать выигрышный ход:

if ( r!=n ) // если существет  выигрышный ход

{

r++;

r=r>>1; // ... то мы находим 2^(i-1)-1

r--;

}

n-=r; // находим количество зерен которые нужно отнять

Это все что касается первой задачи, но как оказалось вторая задача была совершенно аналогична:
Решение задачи я опять начал с расписывания нескольких вариантов, на этот раз если максимум съеденных зерен равен двум и соответственно трем:

2 3
Число зерен Сколько нужно отнять зерен Комментарий Число зерен Сколько нужно отнять зерен Комментарий
1 0 П 1 0 П
2 1 В 2 1 В
3 2 В 3 2 В
4 0 П 4 3 В
5 1 В 5 0 П
6 2 В 6 1 В
7 0 П 7 2 В

Как вы могли уже заметить здесь тоже можно заметить очевидную тенденцию, в которой выигрышного варианта нет в тех случаях, когда число зерне соответствует этой формуле [latex]1+i(m+1)[/latex], а это значит что нам нужно всего лишь видоизменить алгоритм решения первой задачи просто подставив эту формулу вместо предыдущей.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

int n, m, r=1;

cin >> n >> m;

if( m == 0 ) //если m равна нулю, то игроки могут съесть не более половины заданного n

{

--r;    

for( int i=1 ; r<n ; i++ ){

r++;

r=r<<1;

r--;    // 2^i-1

  }

if ( r!=n ) // если существует  выигрышный ход

{

r++;

r=r>>1; // ... то мы находим 2^(i-1)-1

r--;

}

n-=r; // находим количество зерен которые нужно отнять

if(!n)n=-1;

}

else // если введено m

{

while( r<n ){

r += m+1; //1+i*(m+1)

}

if( r!=n )r -= m+1; // если существует  выигрышный ход, то возвращаемся к 1+(i-1)*(m+1)

n -= r; // находим количество зерен которые нужно отнять

if(!n)n=-1;

}

cout << n << endl;

}

cpp.mazurok.com

Перегрузка функций C++. Теория с примерами

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

Эта возможность языка C++ является одной из основополагающих, наряду с объектно-ориентированным программированием. Перегрузка функций позволяет упростить код программы и избавляет программиста от необходимости помнить названия разных функций для работы с переменными разных типов.

В языке C перегрузка функций не реализована, поэтому в языке C для нахождения модуля числа разработчику предлагаются три функции: abs() - для целых числе, labs() - для длинных целых, fabs() - для чисел с плавающей точкой двойной точности.

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

Также в C++ возможна перегрузка операторов (арифметических: сложения, вычитания, сравнения и т.д.; строковых: конкатенации; двоичных, присвоения и т.д.).

Следующие примеры программы на C++ демонстрирует перегрузку функции min(). В начале кода обозначены три заголовка этой функции: для целых чисел, чисел с плавающей точкой и строковых переменных.

Задача 1: предложить пользователю выбрать типы операндов, ввести их и найти минимальный операнд. Для чисел - показать минимальное число. Для строк - показывать самую короткую, для символов - показывать тот, который стоит первым в таблице символов.

Программа поиска минимального операнда

  1. #include <iostream>

  2. #include <string>

  3. using namespace std;

  4. double min(double a, double b);
  5. string min(string a, string b);
  6.  

  7. int main()

  8. {

  9. int m, n;

  10. double a, b;

  11. string c, s;

  12. cout << "Программа выбор минимального\n";

  13. cout << "Выберите тип операндов: \n";

  14. cout << "1 - целые числа \n";

  15. cout << "2 - числа с плавающей точкой \n";

  16. cout << "3 - символы или строки\n";

  17. cin >> m;

  18. switch (m) {

  19. case 1:

  20. cout << "Введите два числа через пробел и нажмите Ввод:\n";

  21. cin >> m >> n;

  22. cout << "Минимальное: " << min(m,n);
  23. break;

  24. case 2:

  25. cout << "Введите два числа через пробел и нажмите Ввод:\n";

  26. cin >> a >> b;

  27. cout << "Минимальное: " << min(a,b);
  28. break;

  29. case 3:

  30. cout << "Введите два слова или два символа через пробел и нажмите Ввод:\n";

  31. cin >> c >> s;

  32. cout << "Минимум: " << min(c,s) << endl;
  33. break;

  34. }

  35. return 0;

  36. }

  37.  

  38. {

  39. return a<b? a : b;

  40. }

  41.  

  42. double min(double a, double b)
  43. {

  44. return a<b? a : b;

  45. }

  46.  

  47. string min(string a, string b)
  48. {

  49. int c=a.length(), s=b.length();

  50. if (c < s) return a;

  51. //если длины одинаковые, то сравниваем номера символов в табице символов

  52. else if (c == s) return a < b ? a : b;

  53. else return b;

  54. }

 

Задача 2: Запросить ввод трёх чисел разных типов и вывести модуль каждого числа.

Программа вывода модулей чисел разных типов

  1. #include <iostream>

  2.  

  3. using namespace std;

  4.  

  5.  

  6. int main()

  7. {

  8. int a;

  9. double b;

  10. long c;

  11. cout << "Модуль числа" << endl;

  12. cout << "Введите целое: ";

  13. cin >> a;

  14. cout << "\nМодуль: " << abs(a);
  15.  

  16. cout << "\nВведите число двойной точности: ";

  17. cin >> b;

  18. cout << "\nМодуль: " << abs(b);
  19.  

  20. cout << "\nВведите число длинное: ";

  21. cin >> c;

  22. cout << "\nМодуль: " << abs(c);
  23.  

  24.  

  25. return 0;

  26. }

  27.  

  28.  

  29. return a<0 ? -a : a;

  30. }

  31. return a<0 ? -a : a;

  32. }

  33. return a<0 ? -a : a;

  34. }

www.tlito.ru

Специальная теория относительности | Virtual Laboratory Wiki

Специа́льная тео́рия относи́тельности (СТО) (англ. special theory of relativity; ча́стная тео́рия относи́тельности; релятивистская механика) — теория, описывающая движение, законы механики и пространственно-временные отношения, определяющие их, при скоростях движения, близких к скорости света. В рамках специальной теории относительности классическая механика Ньютона является приближением низких скоростей. Обобщение СТО для гравитационных полей образует общую теорию относительности.

Отклонения в протекании физических процессов, описываемые теорией относительности, от эффектов, предсказываемых классической механикой, называют релятивистскими эффектами, скорости, при которых такие эффекты становятся существенными — релятивистскими скоростями.

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

    Другим следствием развития электродинамики стал переход от ньютоновской концепции дальнодействия, согласно которой взаимодействующие на расстоянии тела воздействуют друг на друга через пустоту, причём взаимодействие осуществляется с бесконечной скоростью, т.е. «мгновенно» к концепции близкодействия, предложенной Майклом Фарадеем, в которой взаимодействие передаётся с помощью промежуточных агентов - полей, заполняющих пространство - и при этом встал вопрос о скоростях распространения как взаимодействий, переносимых полями, так и самих полей. Скорость распространения электромагнитного поля в пустоте вытекала из уравнений Максвелла и оказалась постоянной и равной скорости света.

    Однако в связи с этим встал вопрос - относительно чего постоянна скорость света? В максвелловой электродинамике скорость распространения электромагнитных волн оказалась не зависящей от скоростей движения как источника этих волн, так и наблюдателя. Аналогичной оказалась и ситуация с магнитостатическими решениями, вытекающими из уравнений Максвелла: статические магнитные поля и силы Лоренца, действующие на движущиеся в магнитных полях заряды, зависят от скоростей зарядов по отношению к наблюдателю, т.е. уравнения Максвелла оказались неинвариантными относительно принципа относительности и преобразований Галилея - что противоречило ньютоновской концепции абсолютного пространства классической механики.

    Специальная теория относительности была разработана в начале XX века усилиями Г. А. Лоренца, А. Пуанкаре и А. Эйнштейна. Вопрос приоритета в создании СТО имеет дискуссионный характер: основные положения и полный математический аппарат теории, включая групповые свойства преобразований Лоренца, в абстрактной форме были впервые сформулированы А. Пуанкаре в работе «О динамике электрона» на основе предшествующих результатов Г. А. Лоренца, а явный абстрактный вывод базиса теории — преобразований Лоренца, из минимума исходных постулатов был дан А. Эйнштейном в практически одновременной работе «К электродинамике движущихся сред».

    Опыт Майкельсона Править

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

    Постулаты Эйнштейна Править

    СТО полностью выводится на физическом уровне строгости из трёх постулатов (предположений):

    1. Справедлив принцип относительности Эйнштейна — расширение принципа относительности Галилея.
    2. Скорость света не зависит от скорости движения источника во всех инерциальных системах отсчёта.
    3. Пространство и время однородны, пространство является изотропным.

    Формулировка второго постулата может быть шире: «Скорость света постоянна во всех инерциальных системах отсчёта», но для вывода СТО достаточно его исходной формулировки Эйнштейном, записанной выше. Приписывание постулатов Эйнштейну правомерно в той степени, что до его работы эти уже сформулированные отдельно друг от друга (в частности, А. Пуанкаре) утверждения в совокупности явным образом никем не рассматривались.

    Иногда в постулаты СТО также добавляют условие синхронизации часов по А. Эйнштейну, но принципиального значения оно не имеет: при других условиях синхронизации лишь усложняется математическое описание экспериментальной ситуации без изменения предсказываемых и измеряемых эффектов (см. по этому поводу работы в списке литературы).

    Тем не менее, опора на достижения экспериментальной физики позволяет утверждать, что в пределах своей области применимости — при пренебрежении эффектами гравитационного взаимодействия тел — СТО является справедливой с очень высокой степенью точности (до 10−12 и выше) (см. список литературы). По меткому замечанию Л. Пэйджа «В наш век электричества, вращающийся якорь каждого генератора и каждого электромотора неустанно провозглашает справедливость теории относительности — нужно лишь уметь слушать».

    Следствием постулатов СТО являются преобразования Лоренца, заменяющие собой преобразования Галилея для нерелятивистского, «классического» движения. Эти преобразования связывают между собой координаты и времена одних и тех же событий, наблюдаемых из различных инерциальных систем отсчёта.

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

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

    Четырёхмерный континуум — пространство-время Править

    С математической точки зрения, непривычные свойства СТО можно интерпретировать как результат того, что время и пространство не являются независимыми понятиями, а образуют единый четырёхмерный континуум — пространство-время Минковского, которое является псевдоевклидовым пространством. Вращения базиса в этом четырёхмерном пространстве-времени, смешивающие временную и пространственные координаты 4-векторов, выглядят для нас как переход в движущуюся систему отсчета и похожи на вращения в обычном трёхмерном пространстве. При этом естественно изменяются проекции четырёхмерных интервалов между определёнными событиями на временную и пространственные оси системы отсчёта, что и порождает релятивистские эффекты изменения временных и пространственных интервалов. Именно инвариантная структура этого пространства, задаваемая постулатами СТО, не меняется при переходах от одного условия синхронизации часов к другому, и гарантирует независимость результатов экспериментов от принятого условия.

    Аналог расстояния между событиями в пространстве Минковского, называемый интервалом, при введении наиболее простых координат, аналогичных декартовым координатам трёхмерного пространства, даётся выражением

    $ s^2 = c^2 \Delta t^2_{} - \Delta x^2 - \Delta y^2 - \Delta z^2 = \eta_{ab} \Delta x^a \Delta x^b, $
    $ \left\{x^0,x^1,x^2,x^3\right\}=\left\{ct,x,y,z\right\}, $
    $ \eta_{ab}=\mathrm{diag}\left\{1,-1,-1,-1\right\}. $

    Обратите внимание: «квадрат расстояния» между двумя разными событиями может быть не только положительным, но и отрицательным и даже нулём. Именно незнакоопределённость метрики определяет свойства пространства-времени, делая его геометрию псевдоевклидовой (см. напр. световой конус).

    Отношения теории относительности с другими физическими понятиями Править

    Гравитация Править

    Для описания гравитации разработано особое расширение теории относительности, в котором допускается кривизна пространства-времени. Тем не менее, динамика даже в рамках СТО может включать гравитационное взаимодействие, пока потенциал гравитационного поля много меньше $ c^2 $.

    Следует также заметить, что специальная теория относительности перестает работать в масштабах всей Вселенной, требуя замены на ОТО.

    Классическая механика Править

    Теория относительности входит в существенное противоречие с некоторыми аспектами классической механики. Например, парадокс Эренфеста показывает несовместимость СТО с понятием абсолютно твёрдого тела. Надо отметить, что даже в классической физике предполагается, что механическое воздействие на твёрдое тело распространяется со скоростью звука, а отнюдь не с бесконечной (как должно быть в воображаемой абсолютно твёрдой среде).

    Квантовая механика Править

    Специальная теория относительности (в отличие от общей) полностью совместима с квантовой механикой. Их синтезом является квантовая теория поля. Более того, такое квантовомеханическое явление как спин без привлечения теории относительности не имеет разумного объяснения. Однако, обе теории вполне независимы друг от друга. Возможно построение как квантовой механики, основанной на нерелятивистском принципе относительности Галилея (см. уравнение Шрёдингера), так и теорий на основе СТО, полностью игнорирующих квантовые эффекты.

    Развитие квантовой теории всё ещё продолжается, и многие физики считают, что будущая полная теория ответит на все вопросы, имеющие физический смысл, и даст в пределах как СТО в сочетании с квантовой теорией поля, так и ОТО. Скорее всего СТО ожидает такая же судьба, как и механику Ньютона — будут точно очерчены пределы её применимости. В то же время такая максимально общая теория пока является очень отдалённой перспективой, и не все учёные считают, что её построение вообще возможно.

    Пусть система отсчёта $ K' $ движется со скоростью $ V $ относительно системы отсчёта $ K_0 $, соответственно, штрихованные величины относятся к $ K' $, а величины с индексом 0 — к $ K_0 $. К наиболее распространённым эффектам СТО, также называемым релятивистскими эффектами, относят:

    Замедление времени Править

    Время в движущейся системе отсчёта течёт медленнее:

    $ dt' = dt_0 \sqrt{1 - (v/c)^2}\ $

    С этим эффектом связан так называемый парадокс близнецов.

    Сокращение линейных размеров Править

    Линейные размеры тел в движущейся системе отсчёта сокращаются:

    $ l' = l_0 \sqrt{1 - (v/c)^2}\ $, для длины.
    $ V' = V_0 \sqrt{1 - (v/c)^2}\ $, для объёма.

    Такое сокращение размеров ещё называют лоренцевым сокращением.

    «Утяжеление» при ускорении Править

    Релятивистская масса движущегося объекта больше массы покоя:

    $ m' = \frac {m_0} {\sqrt{1 - (v/c)^2}} \ $

    Однако, в современной физической литературе по СТО m — масса частицы (инвариантная масса) не зависит от скорости, являясь инвариантом относительно преобразований Лоренца, и является величиной неаддитивной. В данной формуле речь идёт о так называемой «релятивистской массе», которая возрастает с увеличением скорости. «Утяжеление» следует понимать лишь условно, как будто справедлив закон Ньютона, а не аналогичный ему закон релятивистской динамики. В современной физической литературе понятие «релятивистской массы» не используется, хотя встречается в ранних работах по теории относительности.

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

    О том, что СТО действительно описывает наш мир, свидетельствует огромный экспериментальный опыт. Многие следствия этой теории используются на практике. Очевидно, что все попытки "опровергнуть СТО" обречены на провал потому, что сама теория опирается на три постулата Галилея (которые несколько расширены), на основе которых построена ньютонова механика, а также на дополнительный постулат о постоянстве скорости света во всех системах отсчета. Все четыре не вызывают какого-либо сомнения в пределах максимальной точности современных измерений: лучше $ 10^{-12} $, а в некоторых аспектах — до $ 10^{-15} $. Более того, точность их проверки является настолько высокой, что постоянство скорости света положено в основание определения метра — единицы длины, в результате чего скорость света становится константой автоматически, если измерения вести в соответствии с метрологическими требованиями.

    • Паули В. Теория относительности. Изд. 2-е, испр. и доп. Перев. с нем. — М.: Наука, 1983. — 336 с.
    • Эйнштейн А. Сущность теории относительности. — М.: Изд. ин. лит., 1955. — 157 с.

    Работы основоположников Править

    • Г. А. Лоренц. Интерференционный опыт Майкельсона. Из книги "Versucheiner Theoriederelektrischenundoptischen Erscheinungeninbewegten Korpern. Leiden, 1895, параграфы 89...92.
    • А. Пуанкаре. Измерение времени. "Revuede Metaphysiqueetde Morale", 1898, t. 6, p. 1...13.
    • А. Пуанкаре. Оптические явления в движущихся телах. ElectriciteetOptique, G. CarreetC. Naud, Paris, 1901, p. 535...536.
    • А. Пуанкаре. О принципе относительности пространства и движения. Главы 5...7 из книги “Наука и гипотеза”(H. Poinrare. Scienceand Hypothesis. Paris, 1902.)
    • А. Пуанкаре. Настоящее и будущее математической физики. Доклад, напечатанный в журнале "Bulletindes Sciences Mathematiques", 1904, v. 28, ser. 2, p. 302.
    • Г. А. Лоренц.Электромагнитные явления в системе движущейся с любой скоростью, меньшей скорости света. Proc Acad., Amsterdam, 1904, v 6, p. 809.
    • А. Эйнштейн. К электродинамике движущихся тел. Ann. d. Phys.,1905 (рукопись поступила 30 июня 1905 г.), b. 17, s. 89.
    • А. Пуанкаре. О динамике электрона. Rendicontidel Circolo Matematicodi Palermo, 1906 (рукопись поступила 23 июля 1905 г.) v. XXI, p. 129

    Разное Править


    Эта страница использует содержимое раздела Википедии на русском языке. Оригинальная статья находится по адресу: Специальная теория относительности. Список первоначальных авторов статьи можно посмотреть в истории правок. Эта статья так же, как и статья, размещённая в Википедии, доступна на условиях CC-BY-SA .


    ru.vlab.wikia.com

    Теория категорий для программистов: предисловие / Хабр

    Вот уже некоторое время я обдумываю идею написать книгу о теории категорий для программистов. Не компьютерных теоретиков, программистов — скорее инженеров, чем ученых. Я знаю, что это звучит безумно, и я сам достаточно напуган. Я знаю, что есть огромная разница между наукой и техникой, потому, что я работал по обе стороны баррикад. Но у меня всегда был очень сильный порыв объяснить вещи. Я восхищаюсь Ричардрм Фейнманом, который был мастером простых объяснений. Я знаю, я не Фейнман, но я буду стараться изо всех сил. Я начинаю с публикации этого предисловия, которое должно мотивировать читателя изучить теорию категорий, и надеюсь на начало дискуссии и обратную связь.

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

    Мой оптимизм основан на нескольких наблюдениях. Во-первых, теория категорий — сокровищница чрезвычайно полезных идей программирования. Haskell-программисты черпали из нее уже долгое время, и эти идеи медленно просачиваются в другие языки, но этот процесс идет слишком медленно. Нам нужно его ускорить.

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

    Композиция в самой основе теории категорий, она — часть самого определения категории. И я утверждаю, что композиция — суть программирования. Мы комбинировали вещи уже очень давно, задолго до того, как какой-то великий инженер придумал подпрограммы. Некоторое время назад принципы структурного программирования произвели революцию в программировании, — они сделали блоки кода комбинируемыми. Потом пришло объектно-ориентированное программирование, суть которого в комбинировании объектов. Функциональное программирование не только о комбинировании функций и алгебраических структур данных, еще оно делает параллелизм компонуемым, что практически невозможно с другими парадигмами.

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

    Конечно, с помощью размахивания руками вы рискуете сказать что-то откровенно неверное, поэтому я постараюсь убедиться, что позади неформальных аргументов в этой книге есть твердая математическая теория. У меня есть потертая копия книги Сандерса МакЛейна «Теория категорий для математиков» на моей тумбочке.

    Поскольку эта книга о теории категорий для программистов, я проиллюстрирую все основные понятия, используя компьютерные программы. Вы, наверное, знаете, что функциональные языки ближе к математике, чем более популярные императивные языки. В них так же можно создавать более мощные абстракции. У меня было естественное искушение сказать: вы должны научиться Haskell, прежде чем теория категорий станет вам доступна, но это означало бы, что теория категорий не имеет никакого применения за пределами функционального программирования, а это просто неправда. Так что, я приведу много примеров на C++. Конечно, придется преодолеть уродливый синтаксис, и увидеть паттерны будет сложнее из за многословия, и вам, возможно, придется делать много copy-paste, вместо использования абстракций высшего порядка, но это и так большая часть жизни C++-программиста.

    Однако, не все так просто с Haskell. Не нужно становиться программистом на нем, но придется его освоить в качестве языка для зарисовок идей, которые позже будут реализованы на C++. Именно так я и начал программировать на Haskell. Его краткий синтаксис и мощная система типов очень помогли мне с пониманием и реализацией C++-шаблонов, структур данных и алгоритмов. Однако, так как я не могу ожидать, что читатели уже знают Haskell, я введу его постепенно и объясню все на ходу.

    Если вы опытный программист, вы можете думать: я давно программирую и не беспокоюсь ни о какой теории категорий или функциональных методах, зачем же что-то менять? Конечно, вы не можете не заметить, что в императивных языках устойчивый тренд на добавление новых функциональных возможностей. Даже Java, бастион объектно-ориентированного программирования, добавила лямбды. C++ недавно начал развиваться бешеными темпами, — новые стандарты каждые несколько лет, — пытается догнать меняющийся мир. Вся эта деятельность — подготовка к разрушительным изменениям или, как мы, физики, называем это, смена фазы. Если вы нагреваете воду, она в конце концов закипит. Сейчас мы находимся в положении лягушки, которая должна решить, продолжать ли плавание в нагревающейся воде, или начать искать альтернативы.

    Одна из движущих сил для больших изменений — многоядерная революция. Преобладающая парадигма программирования, — объектно-ориентированное программирование, не дает вам ничего в области параллелизма, а вместо этого поощряет опасный и подверженный ошибкам дизайн. Основные принципы объектной ориентированности: cокрытие, совладение и мутация данных — идеальная среда для гонок данных. Идея объединения данных с мьютексом, который их защищает, хороша, но, к сожалению, блокировки не компонуемы, и сокрытие блокировок делает дедлоки более вероятными и менее отлаживаемыми.

    Даже при отсутствии параллелизма, растущая сложность программных систем испытывает пределы масштабируемости императивного программирования. Проще говоря, побочные эффекты выходят из-под контроля. Функции с побочными эффектами легко и удобно писать. Побочные эффекты могут, в принципе, быть закодированы в их названиях и комментариях. Функция с названием SetPassword или WriteFile, очевидно, изменяет некое состояние и имеет побочные эффекты, и мы к этому привыкли. И только тогда, когда мы начинаем писать функции, имеющие побочные эффекты, работающие с другими функциями, имеющими побочные эффекты, и так далее, тогда вещи начинают становиться сложными. Не то чтобы побочные эффекты изначально плохи, плохо то, что они скрыты от глаз. Из за этого, в более крупных масштабах, становится невозможным ими управлять. Побочные эффекты не масштабируемы, а императивное программирование полностью построено на побочных эффектах.

    Изменения в железе и растущая сложность программного обеспечения заставляют нас переосмыслить основы программирования. Так же, как строители великих готических соборов Европы, мы, в нашем ремесле, подходим к пределам материалов и структуры. В Бове, во Франции, есть недостроенный готический собор, который стоит свидетелем этой человеческой борьбы с естественными ограничениями. Задумывалось, что он побьет все предыдущие рекорды высоты и легкости, но в процессе постройки произошел ряд обрушений. От полного разрушения его защищают «костыли»: железные прутья и деревянные опоры. С современной точки зрения, чудо, что так много готических сооружений было успешно завершено без помощи современного материаловедения, компьютерного моделирования, анализа методом конечных элементов и общей математики и физики. Я надеюсь, что будущие поколения будут так же восхищены навыками программирования, которые мы демонстрируем, строя сложные операционные системы, веб-сервера и интернет-инфраструктуру. И, честно говоря, они и должны, потому что мы сделали все это на очень хлипкой теоретической основе. Наша задача — улучшить эти основы, если мы хотим двигаться вперед.


    Костыли, защищающие собор в Бове от разрушения.

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

    Теория категорий для программистов: предисловие
    Категория: суть композиции
    Типы и функции
    Категории, большие и малые
    Категории Клейсли

    habr.com

    теория графов | C++ для приматов

    Задача

    В некоторой древней стране жили-были братья. Сколько их было, нам точно не известно, но в исторических источниках упоминается, что их точно было не менее трех. С течением времени у них появились дети и разбрелись они по миру, причем как и их родители, каждый построил свой город. Опять же с течением времени количество родственников начало стремительно возрастать и решили они между некоторыми городами построить дороги, а некоторые из них, уже до этого успели построить и объездные дороги вокруг своего города. В рукописях упоминается, что количество городов в той стране не превышало $8000$. Кроме того, в тех же рукописях содержались схематические карты, которые показывали наличие дорог между городами, или объездной дороги вокруг города. Карты имели вид квадратных матриц, в которых цифра $1$ указывала на наличие дороги между городами, или вокруг города, или $0$ в случае отсутствия таковой.

    Изучите древние рукописи и дайте ответ на вопрос: а сколько же дорог было построено между городами?

    Входные данные

    В первой строке задано количество городов $n$, а в последующих $n$ строках через пробел задано по $n$ чисел, которые указывают на наличие или отсутствие соответствующей дороги.

    Выходные данные

    Количество построенных между городами дорог.

    Тесты

    Входные данные Выходные данные
    5
    1 1 1 1 0
    1 0 1 0 1
    1 1 1 0 1
    1 0 0 0 1
    0 1 1 1 1
    7
    4
    0 1 0 1
    1 1 0 1
    0 0 1 0
    1 1 0 0
    3
    3
    1 1 0
    1 0 1
    0 1 0
    2
    3
    0 1 1
    1 0 1
    1 1 0
    3
    3
    1 0 0
    0 1 0
    0 0 1
    0

    Код программы

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    #include <iostream>

    #include <stdio.h>

    using namespace std;

     

    int main() {

        int n, k = 0;

        cin >> n;     cin.ignore(); //считываем n и игнорируем символ перевода строки

        const int N = 2 * n + 1;

        char c[N];

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

            fgets(c, N, stdin); //считываем строку

            for(int j = 0; j < i; j++)

                k = k + c[j << 1] - 48; //переводим символ из ascii кода в число

        }

        cout << k;

     

        return 0;

    }

    Решение задачи

    Задача не сложная – посчитать количество ребер в графе, заданном матрицей смежности.

    Сложность задачи состоит в ограничениях по времени – не более одной секунды (ощутимо при больших значенях $n$, так как $3 ≤ n ≤ 8000$). Поэтому приходится быстро вводить данные в больших количествах. Для этого используем символьный массив и любую функцию, которая читает целую строку чисел (в моем случае – fgets()), которая читает строку, пока не встретит символ перевода строки – '\n'.

    Далее по одному переводим символы в числа и суммируем их в переменной k, после чего выводим.

    Ссылки

    Условие задачи на e-olymp.com
    Решение задачи на ideone.com

    cpp.mazurok.com

Author: alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *