<< Вернуться на главную Демон МаксвеллаЧеловечество очень давно мечтает изобрести вечный двигатель. Трудно, наверное, найти более притягательную идею (разве что идея полета или бессмертия :-) ) Многие умы отдали этой идее лучшие годы своей жизни. Однако на пути к достижению этой "великой" цели стоят фундаментальные законы физики. Несмотря на то, что этот двигатель до сих пор не изобретен, сам процесс работы над ним привел к многим реальным открытиям, стал катализатором серьезных исследований и привел к появлению различных теорий (в том числе и шутливых).
Автором одной из таких теорий стал известный британский физик Джеймс Клерк (Кларк) Максвелл.
Он предложил такой мысленный эксперимент: Если механизм заслонки будет работать правильно :-) то через некоторое время (без) особых затрат энергии) "быстрые" молекулы соберутся в одной половине а "медленные" в другой. А это означает, что одна часть сосуда нагреется, а другая охладится! И теперь из этого можно будет получить энергию (например применив тепловой двигатель Стирлинга). Такми образом, единственная проблема - это изготовить механизм "правильного" отпирания заслонки :-). Когда физика спросили, а как должен быть устроен этот механизм? Максвелл не моргнув глазом предложил поручить открывать заслонку мифическому демону :-). Вот этого-то самого демона, которого никто никогда не видел и называют с тех пор "демоном Максвелла". Поскольку внешний вид этого демона неизвестен, мы дали волю своей фантазии и рискнули предложить вам самим поработать в этом качестве.
Игрушку с ручным управлением можно скачать
здесь Итак, приступаем собственно к заданию. Для разных облочек программирования (C++BUIlDER, DELPHI2007, DELPHI5) мы подготовили проекты, в которых демон работает просто по случайному закону. (Кстати сам Максвелл придумал демона в том числе и для того, чтобы показать статистическую природу второго начала термодинамики. Ведь может же так случиться, что вместо демона просто дырка, а молекулы сами "СЛУЧАЙНО" переместятся так как нам надо? :-) ) Так что в принципе, можно никакую программу и не писать, а просто подобрать генератор случайных чисел так, чтобы все получилось как нам надо :-). Однако лучше, все таки, написать нормальную программу управления и открывать заслонку когда нужно, а не когда рак на горе свиснет! Размер сосуда 200 на 100 попугаев. Соответственно координаты дырки 100 на 50. Размер дырки приблизительно 3-а попугая (но молекулы с большей скоростью "просачиваются" легче). УПРАВЛЕНИЕВо всех проектах управление демоном производится через функцию ANALIZ, которая должна на основе анализа обстановки вернуть значение 0(закрыт клапан) или 1(открыт). Никакие другие части проекта менять не рекомендуется! КОНТРОЛЬ
Анализ необходимо производить пользуясь данными, которые вам выдаются в
виде готовой структуры: Для паскаля **************************************************************** T_STRUK=RECORD KOL_HOD:INTEGER;// количество оставшихся ходов KOL1, KOL2: INTEGER;// Количество молекул в левой и правой части сосуда T1, T2: SINGLE; // средние температуры молекул в левой и правой части M:PACKED ARRAY[1..1000]OF T_MOL;// массив молекул в сосуде END; Где Т_МОL структура с координатой и скоростью молекулы // Тип "МОЛЕКУЛА ИДЕАЛЬНОГО ГАЗА" T_MOL=PACKED RECORD X,Y, // координаты DX,DY:SINGLE;// скорости END; для С **************************************************************** // Структура для анализа параметров в сосуде struct T_STRUK{ public: int KOL_HOD;// количество оставшихся ходов int KOL1; int KOL2; // Количество молекул в левой и правой части сосуда float T1; float T2; // средние температуры молекул в левой и правой части T_MOL M[1000]; // массив молекул в сосуде } ; // структура "МОЛЕКУЛА ИДЕАЛЬНОГО ГАЗА" struct T_MOL{ public: float X; float Y; // координаты float DX; float DY; // скорости } ; // ВНИМАНИЕ !!! ввиду известных особенностй // реализации массивов на языке "С", нумерация атомов в массивах "сдвинута" // от 0 до 999
Например:
А здесь выложены готовые проекты, которые вам нужно будет подправить
для достижения наибольшего результата. Учтите, что работать
будем на си и паскале из состава CODE GEAR.
С другими языками сложнее. ное если сильно надо... пишите
Проект для Delphi5(На очном этапе не планируется!) Как всегда, конкурс состоится в 2-а этапа. На первом этапе (аж до нового года) все вникаем в проблему, ищем решения, пробуем, задаем любые вопросы. Попутно вылавливаем разные баги (чтобы потом сюрпризов на очном этапе было поменьше). И пишем свои версии программ Ну а 9-го Января в 11:00 В кабинете 2-27 СЮТа состоится очный этап. Если народу будет слишком много, то участвовать будут только 10 лучших. Для чего необходимо принести готоые программы с заочного этапа. На очном этапе необходимо будет адаптировать свою программу под слегка измененные условия. Обещаем, что на очном этапе ожидаются сюрпризы! Но я думаю, что для тех, кто напишет программу на заочном этапе и разберется во всем сам, ничего страшного не будет :-). По результатам очного этапа будут вручены грамоты и призы (какие как всегда до последнего не ясно, но ведь призы не главное :-) ) А главное - звания победителей городского конкурса программистов.....
Желающим принять участие в конкурсе очень желательно зарегистрироваться.
Чтобы заранее "застолбить место на очном этапе.
По всем вопросам обращайтесь к администрации "звездного мира" через систему или по почте |