| Двойное дифференцирование в реальном времени. |
[Sep. 14th, 2008|05:29 pm]
Забавные задачки
|
Приветствую коллеги. В июне я занимался построением математической модели колебания ншины, снимаемой датчиком ускорения. А именно http://dlinyj.livejournal.com/326530.html . Так вот, в эту коммандировку подтвердил все свои скромные рассчёты и доказал, что они были верными. Не вдаваясь в подробности "а нафига", мы занимаемся измерением собственных колебаний шины ака прогиба. Шина 500 кВ представляет собой трубу длинной 19 метров, диаметром 250 мм и толщиной стенки 5 мм, из особо прочного алюминиевого сплава (легко выдерживает груз из трёх человек). На шину ставится датчик ускорения или более научно акселерометр, который снимает ускорение шины.
Шина 500 кВ и установленный на ней датчик ускорения
Но как вы сами понимаете, что ускорение не то самое, что нам нужно. Нам нужен именно колебания шины, перемещение. А снимаем мы ускорение, а что у нас ускорение - это ДВОЙНАЯ ПРОИЗВОДНАЯ ПЕРЕМЕЩЕНИЯ!. Как нельзя кстати нашёлся военный датчик перемещения на этом заводе, мы его поставили. И что же вы думаете - полностью подтвердил мои расчёты:
Серый график - реальный прогиб шины, чёрный - ускорение снимаемое с акселерометра
Что и требовалось доказать! По сути график ускорения отстаёт от графика перемещения на 90 градусов. Т.е. мы снимаем реальную функцию и функцию дважды продифференцированную по времени.
( Про датчик перемещения и страшные математические выкладкиCollapse )
Знаю что возможно детский сад, но по моему очень наглядно иллюстрирует дифференцирование. |
|
|
| Задачка про генерацию перестановок |
[Sep. 12th, 2008|01:51 pm]
Забавные задачки
|
Есть такая довольно стандартная задача сгенерировать все возможные перестановки элементов заданного массива. У нее есть простое рекурсивное решение. Однако такое решение обладает очевидным недостатком: его сложность по памяти O(n). Существует ли решение, требующее существенно меньше памяти (в идеале O(1) :) ), и которое бы при этом не требовало бы куроченья оригинального массива?
PS: Задачка из собеседования:) |
|
|
| "Идеальный" алгоритм объединения ячеек |
[Aug. 27th, 2008|11:00 pm]
Забавные задачки
|
Как-то начали появляться у нас с Игорем свои любимые темы:) У меня жизненная задачка на разработку алгоритма. Разработанная мною версия имеет ряд недостатков, и мне интересно, можно ли придумать что-то лучше:) Но... мое решение потом, а сейчас условие:
Преамбула к условию, то есть, собственно, откуда задачка. В Excel'е есть проблема: обращение через VSTO .NET обертку к нему довольно медленно и, если надо изменить свойство отдельных ячеек таблицы, то изменение этого свойства для каждой ячейки в отдельности работает оооооочееееень медленно (изменение свойства выливается в 2 строки: запросить объект Range для конкретной координаты, и изменить заданное свойство у полученного объекта). Но Range - это может быть прямоугольник, а не только 1 ячейка. Таким образом, делается логичная оптимизация: выявляется сначала набор прямоугольников, подлежащих изменению, запрашивается для них Range, а потом меняется нужное свойство. Но заморачиваться в каждом отдельном случае очень не хочется!
Таким образом, появляется задача: Реализовать класс, собирающий произвольный набор ячеек в группы. То есть, он должен реализовывать 4 операции, вызываемых по следующему сценарию: StartCollectionCells() - начала массовой операции AddCell(x, y) - пометить отдельную ячейку, как подлежащую массовой операции FinishCollectingCells() - произвести над группами ячеек нужную операцию
4 операция опциональна - это RemoveCell(x, y), без нее иногда неудобно.
Интересны требования алгоритма по памяти и сложность каждого из 4 методов.
PS: фактически изначально всегда известно, сколько колонок в таблице, но количество рядов - не всегда. |
|
|
| Еще одна задачка на наследование :) |
[Aug. 26th, 2008|01:59 pm]
Забавные задачки
|
Какой из вариантов выведет предложенная программа? (Решить не пытаясь запускать!) ( Read more...Collapse ) |
|
|
| (no subject) |
[Aug. 25th, 2008|05:55 pm]
Забавные задачки
|
На первый взгляд простая задачка, но на самом деле придется подумать:)
Есть 12 монет, из них 1 фальшивая, надо её найти за 3 взвешивая на чашечных весах. |
|
|
| (no subject) |
[Aug. 25th, 2008|05:33 pm]
Забавные задачки
|
Необходимо из C# или VB вызвать виртуальную функцию родительского класса для экземпляра дочернего класса, в котором переопределена данная виртуальная функцию. ( ПримерCollapse ) |
|
|
| navigation |
| [ |
viewing |
| |
most recent entries |
] |
| |
|
|