?

Log in

Забавные задачки [entries|archive|friends|userinfo]
Забавные задачки

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Двойное дифференцирование в реальном времени. [Sep. 14th, 2008|05:29 pm]
Забавные задачки

dlinyj
Приветствую коллеги. В июне я занимался построением математической модели колебания ншины, снимаемой датчиком ускорения. А именно http://dlinyj.livejournal.com/326530.html . Так вот, в эту коммандировку подтвердил все свои скромные рассчёты и доказал, что они были верными. Не вдаваясь в подробности "а нафига", мы занимаемся измерением собственных колебаний шины ака прогиба. Шина 500 кВ представляет собой трубу длинной 19 метров, диаметром 250 мм и толщиной стенки 5 мм, из особо прочного алюминиевого сплава (легко выдерживает груз из трёх человек). На шину ставится датчик ускорения или более научно акселерометр, который снимает ускорение шины.


Шина 500 кВ и установленный на ней датчик ускорения


Но как вы сами понимаете, что ускорение не то самое, что нам нужно. Нам нужен именно колебания шины, перемещение. А снимаем мы ускорение, а что у нас ускорение - это ДВОЙНАЯ ПРОИЗВОДНАЯ ПЕРЕМЕЩЕНИЯ!. Как нельзя кстати нашёлся военный датчик перемещения на этом заводе, мы его поставили. И что же вы думаете - полностью подтвердил мои расчёты:


Серый график - реальный прогиб шины, чёрный - ускорение снимаемое с акселерометра


Что и требовалось доказать! По сути график ускорения отстаёт от графика перемещения на 90 градусов. Т.е. мы снимаем реальную функцию и функцию дважды продифференцированную по времени.

Про датчик перемещения и страшные математические выкладкиCollapse )

Знаю что возможно детский сад, но по моему очень наглядно иллюстрирует дифференцирование.
LinkLeave a comment

Задачка про генерацию перестановок [Sep. 12th, 2008|01:51 pm]
Забавные задачки

_kolya_
[Tags|, ]

Есть такая довольно стандартная задача сгенерировать все возможные перестановки элементов заданного массива. У нее есть простое рекурсивное решение. Однако такое решение обладает очевидным недостатком: его сложность по памяти O(n). Существует ли решение, требующее существенно меньше памяти (в идеале O(1) :) ), и которое бы при этом не требовало бы куроченья оригинального массива?

PS: Задачка из собеседования:)
LinkLeave a comment

"Идеальный" алгоритм объединения ячеек [Aug. 27th, 2008|11:00 pm]
Забавные задачки

_kolya_
[Tags|, ]

Как-то начали появляться у нас с Игорем свои любимые темы:)
У меня жизненная задачка на разработку алгоритма. Разработанная мною версия имеет ряд недостатков, и мне интересно, можно ли придумать что-то лучше:) Но... мое решение потом, а сейчас условие:

Преамбула к условию, то есть, собственно, откуда задачка.
В Excel'е есть проблема: обращение через VSTO .NET обертку к нему довольно медленно и, если надо изменить свойство отдельных ячеек таблицы, то изменение этого свойства для каждой ячейки в отдельности работает оооооочееееень медленно (изменение свойства выливается в 2 строки: запросить объект Range для конкретной координаты, и изменить заданное свойство у полученного объекта). Но Range - это может быть прямоугольник, а не только 1 ячейка. Таким образом, делается логичная оптимизация: выявляется сначала набор прямоугольников, подлежащих изменению, запрашивается для них Range, а потом меняется нужное свойство. Но заморачиваться в каждом отдельном случае очень не хочется!

Таким образом, появляется задача:
Реализовать класс, собирающий произвольный набор ячеек в группы. То есть, он должен реализовывать 4 операции, вызываемых по следующему сценарию:
StartCollectionCells() - начала массовой операции
AddCell(x, y) - пометить отдельную ячейку, как подлежащую массовой операции
FinishCollectingCells() - произвести над группами ячеек нужную операцию

4 операция опциональна - это RemoveCell(x, y), без нее иногда неудобно.

Интересны требования алгоритма по памяти и сложность каждого из 4 методов.

PS: фактически изначально всегда известно, сколько колонок в таблице, но количество рядов - не всегда.
LinkLeave a comment

Еще одна задачка на наследование :) [Aug. 26th, 2008|01:59 pm]
Забавные задачки

darkman666
[Tags|]

Какой из вариантов выведет предложенная программа? (Решить не пытаясь запускать!)
Read more...Collapse )
LinkLeave a comment

(no subject) [Aug. 25th, 2008|05:55 pm]
Забавные задачки

_kolya_
[Tags|]

На первый взгляд простая задачка, но на самом деле придется подумать:)

Есть 12 монет, из них 1 фальшивая, надо её найти за 3 взвешивая на чашечных весах.
Link1 comment|Leave a comment

(no subject) [Aug. 25th, 2008|05:33 pm]
Забавные задачки

darkman666
[Tags|, , ]

Необходимо из C# или VB вызвать виртуальную функцию родительского класса для экземпляра дочернего класса, в котором переопределена данная виртуальная функцию. ПримерCollapse )
LinkLeave a comment

navigation
[ viewing | most recent entries ]