Archive

Archive for the ‘Uncategorized’ Category

Відмінності між одинарними ([ ]) і подвійними ([[ ]]) скобами у bash

[ і [[ використовуються для обчислення виразів. [[ працює лише в Bash, Zsh і Korn оболонках, і вона більш потужна; [ доступна в усіх POSIX оболонках.

Одинарна скоба [ насправді це те саме, що команда test, тобто це не синтаксис.

Подвійні скоби [[ ]] – це синтаксис. Вони дозволяють C-подібний синтаксис із >, <, >=, <=, !=, ==, &&, || операторами.

Усередині одинарних скоб, вам потрібно використовувати подвійні лапки навколо змінних, як і в більшості інших місць, оскільки це запобігає тлумаченню всіх спеціальних символів усередині рядка в лапках окрім $, `, \. Усередині подвійних скоб, вам не потрібні подвійні лапки, оскільки оболонка не виконує розбиття на слова чи глобування (globbing): вона розбирає умовний вираз, а не команду.

Хоча є виняток – [[ $var1 == "$var2" ]] де необхідно використати лапки, якщо ви бажаєте виконати побайтове порівняння рядків, інакше, $var2 був би шаблоном для порівняння з $var1.

Читати далі…

Advertisements
Категорії:Uncategorized Позначки:

Керування багатьма роботами

Організаційні принципи колективної поведінки

  • Кожен діє незалежно
  • Дії базуються на локальній інформації (ніхто не має глобальної картинки)
  • Анонімна координація (неважливо з ким ти взаємодієш)

Складність

n роботів, m перепон.

Розмірність простору станів збільшується лінійно із кількістю роботів
Кількість потенційних взаємодій зростає як n*n O(mn + n2)
Кількість потенційних взаємодій з навколишніми перепонами зростає як mn
Кількість призначень роботів до цільових позицій n!

start_to_goal

Призначення цілей роботам
\phi_{i,j}=\begin{cases}1\\0\end{cases}

Планування траєкторій повинно виконуватись у спільному просторі станів – O(en)
\mathbf{X}(t) = \begin{bmatrix}\mathbf{x}_1(t)\\\mathbf{x}_2(t)\\ \dots \\ \mathbf{x}_n(t)\\ \end{bmatrix}

\gamma(t):[t_o,t_f] \rightarrow \mathbf{X}(t)

Також необхідно вимагати, щоб найменша відстань між роботами становила не менше ніж подвоєний радіус.

Оптимальність

Вважаємо, що у нас є функціонал, що описує міру оптимальності і нам потрібно мінімізувати його.

Найскладнішими завданнями є призначення роботам цілей і планування траєкторій. І їх потрібно виконувати паралельно.

Чотири ключові ідеї:

  1. Паралельне призначення цілей і траєкторій
  2. Лідер-послідовник мережі
  3. Анонімність
  4. Спільне використання інформації
Категорії:Uncategorized

Переведення числового запису в його рядковий відповідник

У багатьох програмістів в житті наступає момент, коли виникає потреба в переведенні числа, наприклад прочитаного з бази даних, в рядок як воно читається. Зазвичай для формування фінансових документів. Таке завдання випало й мені. Результат програми виглядає так:
123.12 – сто двадцять три грн. 12 коп.
123832 – сто двадцять три тисячі вiсiмсот тридцять двi грн. 12 коп.
12394355.12 – дванадцять мiльйонiв триста дев’яносто чотири тисячі триста п’ятдесят п’ять грн. 12 коп.

Далі подаю код:
Читати далі…

Категорії:Uncategorized Позначки:,

Rvalue посилання: C++0x можливості в VC10

л- та п-значення в C++98/03

Для розуміння правосторонніх посилань (rvalue reference) в C++0x, ви маєте розуміти лівосторонні й правосторонні значення в C++98/03.

Терміни ‘л-значення’ та ‘п-значення’ викликають плутанину, це пов’язано з їхньою історією. Ці поняття прийшли з С і тоді стали частиною C++. Для збереження часу, ми проминемо їхню історію, включно з причинами чому вони називаються ‘л-значення’ та ‘п-значення’ й одразу розглянемо як вони працюють в C++98/03. (Добре, це не велика таємниця, що ‘Л’ означає ‘лівий’, а ‘R’ – ‘правий’. Але самі поняття розвинулись і змінились, і тепер їхні назви не дуже точні. Замість прослуховування уроку з історії їх появи, ви можете уявити, що вони мають довільні назви, приміром, ‘верхня частка’ та ‘нижня частка’, і при цьому ви нічого не втратите.)

C++03 3.10/1 каже: ‘Кожен вираз є або л-значенням або п-значенням.’ Важливо пам’ятати, що л- або п-значеннєвість це властивість виразу, а не об’єкта.
Читати далі…

Категорії:Uncategorized Позначки:,