Обсуждение:Дискретная математика и алгоритмы — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Псевдокод)
 
(не показаны 54 промежуточные версии 17 участников)
Строка 1: Строка 1:
Требования к написанию вики-конспектов 1 курса.
+
Требования к написанию вики-конспектов
  
 
== Главное ==
 
== Главное ==
* '''Внимательно читайте свои конспекты перед тем, как совершать попытку их сдачи.'''
+
# '''Внимательно читайте свои конспекты перед тем, как совершать попытку их сдачи. Еще лучше читать конспекты друг друга перед отправкой на проверку, так как это позволит значительно уменьшить количество итераций сдачи конспекта.'''
* '''Перед отправкой на проверку перечитайте эти требования.'''
+
# '''Перед отправкой на проверку перечитайте эти требования.'''
 +
# '''В конспекте не должно быть недочетов, связанных с требованиями.'''
 +
# '''Не забудьте после того как конспект примут, или когда он будет в состоянии, близком к готовому, добавить его в список конспектов по соответствующей теме, иначе он потеряется, и его никто никогда не прочитает.'''
  
 
== Общение с редакторами ==
 
== Общение с редакторами ==
* Будет лучше, если вы зарегистрируетесь на сайте вики-конспектов и напишете в информации о себе имя, фамилию и группу.
+
# Желательно зарегистрироваться на сайте вики-конспектов и написать в информации о себе имя, фамилию и группу.
* Не забывайте сообщать редакторам о том, что конспект нужно проверить.
+
# Не забывайте сообщать редакторам о том, что конспект нужно проверить.
* При общении с редактором, представляйтесь и указывайте какой конспект вы пишете. В теме письма указывайте “Вики-конспекты: Название вики-конспекта”.
+
# При общении с редактором, представляйтесь и давайте ссылку на конспект, который вы пишете (в каждой итерации общения, чтобы не приходилось искать в истории переписки ссылку). При использовании электронной почты в теме письма указывайте “'''Вики-конспекты''': Название вики-конспекта”. Отсутствие словосочетания "'''Вики-конспекты'''" может сказаться на времени проверки конспекта.
* Ставить замечания к конспекту может не только ваш редактор, в том числе и после принятия конспекта. Их тоже надо учитывать.
+
# Ставить замечания к конспекту может не только ваш куратор конспекта, в том числе и после принятия конспекта. Их тоже надо учитывать.
 +
# Не помечайте замечания, эти метки {{---}} для кураторов конспектов.
  
 
== Викификация ==
 
== Викификация ==
* Смотрите в качестве примера на конспекты, которые отмечены как хорошие.
+
# Смотрите в качестве примера на конспекты, которые отмечены как хорошие.
* В конспекте не должно быть орфографических, пунктуационных, речевых, фактических, логических и других ошибок. Используйте spell checker.
+
# В конспекте не должно быть орфографических, пунктуационных, речевых, фактических, логических и других ошибок. Используйте spell checker.
* Используйте вики-шаблоны [[Шаблон: Определение]], [[Шаблон: Теорема]], [[Шаблон: Лемма]], [[Шаблон: Утверждение]] (примеры использования смотрите в других конспектах).
+
# Используйте вики-шаблоны [[Шаблон: Определение]], [[Шаблон: Теорема]], [[Шаблон: Лемма]], [[Шаблон: Утверждение]], [[Шаблон: Задача]] ([[Справка по шаблонам]]).
* Приводите английские названия терминов, теорем, имен алгоритмов и т.д. Их лучше писать в скобках курсивом после их русских названий.
+
# Если ваш конспект написан про какое-то конкретное понятие или теорему, не надо делать отдельный пункт "Формулировка":
* Вместо черточки “-” используйте тире “{{---}}”. Для этого можно использовать [[Шаблон :---]]
+
{|
* Редактировать можно не только свои конспекты — используйте “концепцию вики”
+
|[[Файл:Statement-bad.png|400px|thumb|плохо]]
* Не используйте тег <nowiki> <br> </nowiki>. Для перевода строки в вики надо вставлять пустую строку.
+
|[[Файл:Statement-good.png|400px|thumb|хорошо]]
* Ставьте категорию <nowiki>[[Категория: Дискретная математика и алгоритмы]]</nowiki> и подкатегорию с названием подтемы (например, <nowiki>[[Категория: Динамическое программирование]]</nowiki>). Список подкатегорий [[:Категория:Дискретная математика и алгоритмы | тут]].
+
|}
 +
# Приводите английские названия терминов, теорем, имен алгоритмов и т.д. Их лучше писать в скобках курсивом после их русских названий.
 +
# Вместо черточки “-” используйте тире “{{---}}”. Для этого можно использовать [[Шаблон:---]]. Про правила использования читать [http://www.artlebedev.ru/kovodstvo/sections/97/ здесь]
 +
# Редактировать можно не только свои конспекты — используйте “концепцию вики”
 +
# Не используйте тег <nowiki> <br> </nowiki>. Для перевода строки в вики надо вставлять пустую строку. Видимо, единственное место, где можно использовать его — внутри шаблонов — там переводы строки почему-то не работают.
 +
# Ставьте категорию <nowiki>[[Категория: Дискретная математика и алгоритмы]]</nowiki> и подкатегорию с названием подтемы (например, <nowiki>[[Категория: Динамическое программирование]]</nowiki>). Список подкатегорий [[:Категория:Дискретная математика и алгоритмы | тут]].
 +
# Оформляйте ссылки на источники [http://ru.wikipedia.org/wiki/Википедия:Ссылки_на_источники правильно]. Пример хорошего оформления {{---}}  конспекты [[Алгоритм Укконена]] и [[Правило Лаулера]].
 +
# Не используйте сокращения.
  
== Источники ==
+
== Картинки ==
* Используйте ссылки на другие конспекты.
+
# Картинки, где только возможно, надо делать в векторе. Для этого можно пользоваться Microsoft Visio, Inkscape, Graphviz, Metapost и им подобными.
* В конспекте должны быть указаны источники или литература. Причем указывать ссылки не просто на википедию, а на конкретную статью(как [http://ru.wikipedia.org/wiki/%D0%AD%D0%BA%D1%81%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C Википедия - Экспоненциальная запись], на английскую {{---}} как [http://en.wikipedia.org/wiki/Scientific_notation Wikipedia - Scientific notation]). Для книг достаточно указать автора, название, издание и номер страницы.
+
 
 +
== Источники информации==
 +
# Используйте ссылки на другие конспекты.
 +
# В конспекте должны быть указаны источники или литература. Причем указывать ссылки не просто на википедию, а на конкретную статью (как [http://ru.wikipedia.org/wiki/%D0%AD%D0%BA%D1%81%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C Википедия {{---}} Экспоненциальная запись], на английскую {{---}} как [http://en.wikipedia.org/wiki/Scientific_notation Wikipedia {{---}} Scientific notation]). Для книг достаточно указать автора, название, издание и номер страницы.
 +
# Нарушения авторского права недопустимы.
  
 
== TeX ==
 
== TeX ==
* Использование тега <nowiki><tex></nowiki> вместо <nowiki><math></nowiki> обязательно. Без тега tex можно писать только переменные сами по себе (a, b, n, i, T и т.д.) и названия функций в пояснениях к псевдокоду.
+
 
* Если лень постоянно писать <nowiki> <tex> </tex> </nowiki> , можно обернуть всю статью в <nowiki> <wikitex> </wikitex> </nowiki>, а потом обособлять формулы в $ $(например, <nowiki> <wikitex> Для любого $ \alpha $ верно $\sin^2 \alpha + \cos^2 \alpha = 1 $ </wikitex> </nowiki>).  
+
#
* Формулы с дробями нужно увеличивать для повышения читаемости, особенно, если их много в конспекте. Для этого используйте параметр dpi в теге tex. Пример: <nowiki> <tex dpi = "180">\frac {\omega_n(x)} {(x - x_j) \cdot \omega_n'(x_j)}</tex> </nowiki>
+
#* [http://en.wikipedia.org/wiki/Help:Displaying_a_formula Список математических символов из википедии]
 +
#* [ftp://ftp.ams.org/pub/tex/doc/amsmath/short-math-guide.pdf Гайд по модулю amsmath, в котором так же можно узнать что-нибудь полезное]
 +
#* [http://detexify.kirelabs.org/classify.html Онлайн распознавалка, которая по нарисованному от руки символу дает его tex-код]
 +
# '''Использование тега <nowiki><tex></nowiki> вместо <nowiki><math></nowiki> обязательно. Везде.'''
 +
# '''По согласованию с куратором''': если лень постоянно писать <nowiki> <tex> </tex> </nowiki> , можно обернуть всю статью в <nowiki> <wikitex> </wikitex> </nowiki>, а потом обособлять формулы в $ $(например, <nowiki> <wikitex> Для любого $ \alpha $ верно $\sin^2 \alpha + \cos^2 \alpha = 1 $ </wikitex> </nowiki>), но ''лучше'' так не делать. В частности, проблемы возникают если внутри тега wikitex находится несколько заголовков — ломается их редактирование по отдельности.
 +
# Формулы с дробями можно увеличивать для повышения читаемости, если кажется, что они рендерятся слишком мелко, но не надо злоупотреблять. Для этого используйте параметр dpi в теге tex. Пример: <nowiki> <tex dpi = "180">\frac {\omega_n(x)} {(x - x_j) \cdot \omega_n'(x_j)}</tex> </nowiki>
 +
# В качестве знака умножения нужно использовать <code>\times</code> или <code>\cdot</code>, а не звездочку. Сравните: <tex>2 * 2 = 2 \times 2 = 2 \cdot 2 = 4</tex>.
 +
# Не опускайте знаки умножения, конъюнкции, скобки и т.п., если это может привести к неоднозначности.
  
 
== Псевдокод ==
 
== Псевдокод ==
 
(правила, в основном, отсюда [[Участник: Kirelagin/Оформление#Псевдокод]])
 
(правила, в основном, отсюда [[Участник: Kirelagin/Оформление#Псевдокод]])
* Используйте максимально компактный и читаемый псевдокод.
+
 
* Не ставьте фигурные скобки. Угадайте, для чего они нужны? Чтобы парсер языка было легче писать. Человеку они только мешают. Используйте отступы для группировки. (Python-style)
+
# Используйте максимально компактный и читаемый псевдокод.
* Не ставьте круглые скобки вокруг внешнего условия if'а, while'а и т.п.
+
# Не ставьте фигурные скобки. Угадайте, для чего они нужны? Чтобы парсер языка было легче писать. Человеку они только мешают. Используйте отступы для группировки. (Python-style)
* Обозначайте присвоение ''нормально'', с помощью знака «=», а сравнение как «==» (всё равно придётся слезать с паскаля).
+
# Не ставьте круглые скобки вокруг внешнего условия if'а, while'а и т.п.
* Не вводите какие-то левые операторы. Например, если кладёте что-то в очередь, так и напишите: q.push(a).
+
# Обозначайте присвоение ''нормально'', с помощью знака «=», а сравнение как «==» (всё равно придётся слезать с паскаля).
* TeX в псевдокоде можно использовать только в случае какого-то нестандартного оператора(а перед этим хорошо подумать и посмотреть предыдущий пункт)
+
# Не вводите какие-то левые операторы. Например, если кладёте что-то в очередь, так и напишите: q.push(a).
* Обычные правила хорошего кода:
+
# TeX в псевдокоде можно использовать только в случае какого-то нестандартного оператора(а перед этим хорошо подумать и посмотреть предыдущий пункт)
** Ставим пробелы между бинарными операторами(«1 + 2», а не «1+2»). После унарных операторов перед операндом пробел ставить не нужно.
+
# Не надо описывать ввод данных и вывод данных. Оформляйте псевдокод как функцию, принимающую входные данные и возвращающую результат.
** Не ставим пробел перед скобкой - вызовом функции(«f(x)», а не «f (x)»)
+
# Обычные правила хорошего кода:
** Разделяем аргументы функции запятой
+
#* Ставим пробелы между операндами и бинарными операторами(«1 + 2», а не «1+2»). После унарных операторов перед операндом пробел ставить не нужно.
** Используем какой-то определённый стиль именования переменных(я бы рекомендовал lowerCamelCase для переменных и функций и UpperCamelCase для классов)
+
#* Не ставим пробел перед скобкой - вызовом функции(«f(x)», а не «f (x)»)
 +
#* Пробел после запятой, разделяющей аргументы функции
 +
#* Используем какой-то определённый стиль именования переменных(я бы рекомендовал lowerCamelCase для переменных и функций и UpperCamelCase для классов)
 +
 
 +
== теорема Вагнера ==
 +
 
 +
{{Определение
 +
|definition =
 +
<b>Минор графа</b> (англ. ''Graph minor'')  G будем называть граф H, если H может быть образован из G удалением рёбер и вершин и стягивания рёбер.
 +
}}
 +
 
 +
[[Категория:Справка]]

Текущая версия на 15:31, 14 ноября 2018

Требования к написанию вики-конспектов

Главное

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

Общение с редакторами

  1. Желательно зарегистрироваться на сайте вики-конспектов и написать в информации о себе имя, фамилию и группу.
  2. Не забывайте сообщать редакторам о том, что конспект нужно проверить.
  3. При общении с редактором, представляйтесь и давайте ссылку на конспект, который вы пишете (в каждой итерации общения, чтобы не приходилось искать в истории переписки ссылку). При использовании электронной почты в теме письма указывайте “Вики-конспекты: Название вики-конспекта”. Отсутствие словосочетания "Вики-конспекты" может сказаться на времени проверки конспекта.
  4. Ставить замечания к конспекту может не только ваш куратор конспекта, в том числе и после принятия конспекта. Их тоже надо учитывать.
  5. Не помечайте замечания, эти метки — для кураторов конспектов.

Викификация

  1. Смотрите в качестве примера на конспекты, которые отмечены как хорошие.
  2. В конспекте не должно быть орфографических, пунктуационных, речевых, фактических, логических и других ошибок. Используйте spell checker.
  3. Используйте вики-шаблоны Шаблон: Определение, Шаблон: Теорема, Шаблон: Лемма, Шаблон: Утверждение, Шаблон: Задача (Справка по шаблонам).
  4. Если ваш конспект написан про какое-то конкретное понятие или теорему, не надо делать отдельный пункт "Формулировка":
плохо
хорошо
  1. Приводите английские названия терминов, теорем, имен алгоритмов и т.д. Их лучше писать в скобках курсивом после их русских названий.
  2. Вместо черточки “-” используйте тире “—”. Для этого можно использовать Шаблон:---. Про правила использования читать здесь
  3. Редактировать можно не только свои конспекты — используйте “концепцию вики”
  4. Не используйте тег <br> . Для перевода строки в вики надо вставлять пустую строку. Видимо, единственное место, где можно использовать его — внутри шаблонов — там переводы строки почему-то не работают.
  5. Ставьте категорию [[Категория: Дискретная математика и алгоритмы]] и подкатегорию с названием подтемы (например, [[Категория: Динамическое программирование]]). Список подкатегорий тут.
  6. Оформляйте ссылки на источники правильно. Пример хорошего оформления — конспекты Алгоритм Укконена и Правило Лаулера.
  7. Не используйте сокращения.

Картинки

  1. Картинки, где только возможно, надо делать в векторе. Для этого можно пользоваться Microsoft Visio, Inkscape, Graphviz, Metapost и им подобными.

Источники информации

  1. Используйте ссылки на другие конспекты.
  2. В конспекте должны быть указаны источники или литература. Причем указывать ссылки не просто на википедию, а на конкретную статью (как Википедия — Экспоненциальная запись, на английскую — как Wikipedia — Scientific notation). Для книг достаточно указать автора, название, издание и номер страницы.
  3. Нарушения авторского права недопустимы.

TeX

  1. Использование тега <tex> вместо <math> обязательно. Везде.
  2. По согласованию с куратором: если лень постоянно писать <tex> </tex> , можно обернуть всю статью в <wikitex> </wikitex> , а потом обособлять формулы в $ $(например, <wikitex> Для любого $ \alpha $ верно $\sin^2 \alpha + \cos^2 \alpha = 1 $ </wikitex> ), но лучше так не делать. В частности, проблемы возникают если внутри тега wikitex находится несколько заголовков — ломается их редактирование по отдельности.
  3. Формулы с дробями можно увеличивать для повышения читаемости, если кажется, что они рендерятся слишком мелко, но не надо злоупотреблять. Для этого используйте параметр dpi в теге tex. Пример: <tex dpi = "180">\frac {\omega_n(x)} {(x - x_j) \cdot \omega_n'(x_j)}</tex>
  4. В качестве знака умножения нужно использовать \times или \cdot, а не звездочку. Сравните: [math]2 * 2 = 2 \times 2 = 2 \cdot 2 = 4[/math].
  5. Не опускайте знаки умножения, конъюнкции, скобки и т.п., если это может привести к неоднозначности.

Псевдокод

(правила, в основном, отсюда Участник: Kirelagin/Оформление#Псевдокод)

  1. Используйте максимально компактный и читаемый псевдокод.
  2. Не ставьте фигурные скобки. Угадайте, для чего они нужны? Чтобы парсер языка было легче писать. Человеку они только мешают. Используйте отступы для группировки. (Python-style)
  3. Не ставьте круглые скобки вокруг внешнего условия if'а, while'а и т.п.
  4. Обозначайте присвоение нормально, с помощью знака «=», а сравнение как «==» (всё равно придётся слезать с паскаля).
  5. Не вводите какие-то левые операторы. Например, если кладёте что-то в очередь, так и напишите: q.push(a).
  6. TeX в псевдокоде можно использовать только в случае какого-то нестандартного оператора(а перед этим хорошо подумать и посмотреть предыдущий пункт)
  7. Не надо описывать ввод данных и вывод данных. Оформляйте псевдокод как функцию, принимающую входные данные и возвращающую результат.
  8. Обычные правила хорошего кода:
    • Ставим пробелы между операндами и бинарными операторами(«1 + 2», а не «1+2»). После унарных операторов перед операндом пробел ставить не нужно.
    • Не ставим пробел перед скобкой - вызовом функции(«f(x)», а не «f (x)»)
    • Пробел после запятой, разделяющей аргументы функции
    • Используем какой-то определённый стиль именования переменных(я бы рекомендовал lowerCamelCase для переменных и функций и UpperCamelCase для классов)

теорема Вагнера

Определение:
Минор графа (англ. Graph minor) G будем называть граф H, если H может быть образован из G удалением рёбер и вершин и стягивания рёбер.