You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
*`A`[Квадратный корень](src/algorithms/math/square-root) — метод Ньютона
76
81
*`A`[Алгоритм Лю Хуэя](src/algorithms/math/liu-hui) — расчёт числа π с заданной точностью методом вписанных правильных многоугольников
@@ -134,15 +139,27 @@ _Читать на других языках:_
134
139
*`A`[Задача коммивояжёра](src/algorithms/graph/travelling-salesman) — кратчайший маршрут, проходящий через указанные города с последующим возвратом в исходный город
135
140
***Криптография**
136
141
*`B`[Полиноминальный хэш](src/algorithms/cryptography/polynomial-hash) — функция кольцевого хэша, основанная на полиноме
142
+
*`B`[Шифр ограждения рельсов](src/algorithms/cryptography/rail-fence-cipher) - алгоритм транспозиционного шифра для кодирования сообщений
143
+
*`B`[Шифр Цезаря](src/algorithms/cryptography/caesar-cipher) - простой подстановочный шифр
144
+
*`B`[Шифр Хилла](src/algorithms/cryptography/hill-cipher) - подстановочный шифр на основе линейной алгебры
137
145
***Машинное обучение**
138
146
*`B`[Нано-нейрон](https://github.com/trekhleb/nano-neuron) — 7 простых JavaScript функций, отображающих способности машины к обучению (прямое и обратное распространение)
147
+
*`B`[k-NN](src/algorithms/ml/knn) - алгоритм классификации k-ближайших соседей
148
+
*`B`[k-Means](src/algorithms/ml/k-means) - алгоритм кластеризации по методу k-средних
149
+
***Обработка изображений**
150
+
*`B`[Резьба по шву](src/algorithms/image-processing/seam-carving) - алгоритм изменения размера изображения с учетом содержания
151
+
***Статистика**
152
+
*`B`[Взвешенная случайность](src/algorithms/statistics/weighted-random) - выбор случайного элемента из списка на основе веса элементов
153
+
***Эволюционные алгоритмы**
154
+
*`A`[Генетический алгоритм](https://github.com/trekhleb/self-parking-car-evolution) - пример применения генетического алгоритма для обучения самопаркующихся автомобилей
*`B`[Поворот квадратной матрицы](src/algorithms/uncategorized/square-matrix-rotation) — используется дополнительная память
142
158
*`B`[Прыжки](src/algorithms/uncategorized/jump-game) — на основе бэктрекинга, динамического программирования (сверху-вниз + снизу-вверх) и жадных алгоритмов
143
159
*`B`[Поиск уникальных путей](src/algorithms/uncategorized/unique-paths) — на основе бэктрекинга, динамического программирования и треугольника Паскаля
144
160
*`B`[Подсчёт дождевой воды](src/algorithms/uncategorized/rain-terraces) — на основе перебора и динамического программирования
145
161
*`B`[Задача о рекурсивной лестнице](src/algorithms/uncategorized/recursive-staircase) — подсчёт количества путей, по которым можно достичь верха лестницы (4 способа)
162
+
*`B`[Лучшее время для покупки и продажи акций](src/algorithms/uncategorized/best-time-to-buy-sell-stocks) - примеры "разделяй и властвуй" и в один проход
146
163
*`A`[Задача об N ферзях](src/algorithms/uncategorized/n-queens)
*`B`[Быстрое возведение в степень](src/algorithms/math/fast-powering)
195
+
*`B`[Лучшее время для покупки и продажи акций](src/algorithms/uncategorized/best-time-to-buy-sell-stocks) - примеры "разделяй и властвуй" и в один проход
177
196
*`A`[Перестановки](src/algorithms/sets/permutations) (с повторениями и без повторений)
178
197
*`A`[Сочетания](src/algorithms/sets/combinations) (с повторениями и без повторений)
179
198
***Динамическое программирование** — решение общей задачи конструируется на основе ранее найденных решений подзадач
*`B`[Задача о рекурсивной лестнице](src/algorithms/uncategorized/recursive-staircase) — подсчёт количества путей, по которым можно достичь верха лестницы
204
+
*`B`[Резьба по шву](src/algorithms/image-processing/seam-carving) - алгоритм изменения размера изображения с учетом содержания
185
205
*`A`[Расстояние Левенштейна](src/algorithms/string/levenshtein-distance) — метрика, измеряющая разность между двумя последовательностями
186
206
*`A`[Наибольшая общая подпоследовательность](src/algorithms/sets/longest-common-subsequence)
187
207
*`A`[Наибольшая общая подстрока](src/algorithms/string/longest-common-substring)
В криптографии **шифр Цезаря**, также известный как **шифр сдвига**, **код Цезаря** или **сдвиг Цезаря**, является одним из самых простых и широко известных методов шифрования. Это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, находящимся на некотором постоянном числе позиций левее или правее него в алфавите. Например, в шифре со сдвигом вправо на `3`, `D` была бы заменена на `A`, `E` станет `B`, и так далее. Метод назван в честь Юлия Цезаря, который использовал его в своей личной переписке.
Это преобразование можно представить как выравнивание двух алфавитов; алфавит шифра - это обычный алфавит, повёрнутый влево или вправо на некоторое количество позиций. Например, здесь приведен шифр Цезаря, использующий поворот влево на три позиции, что эквивалентно сдвигу вправо на 23 (параметр сдвига используется в качестве ключа):
9
+
10
+
```text
11
+
Обычный: ABCDEFGHIJKLMNOPQRSTUVWXYZ
12
+
Шифрованный: XYZABCDEFGHIJKLMNOPQRSTUVW
13
+
```
14
+
15
+
При шифровании человек просматривает каждую букву сообщения в "открытой" строке и записывает соответствующую букву в "шифрованной" строке.
16
+
17
+
```text
18
+
Обычный текст: THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
0 commit comments