Bouncing Red Ball Adventure v3.0 (IOS Android): большой апдейт!

Сложность: высокая
Автор: Msey
Ссылка на скачивание приложения AppStore/GooglePlay
10 2 004
Пусть дана строка s длины n. Тогда Z-функция ("зет-функция") от этой строки — это массив длины n, i-ый элемент которого равен наибольшему числу символов, начиная с позиции i, совпадающих с первыми символами строки s.
Иными словами, z[i] — это наибольший общий префикс строки s и её i-го суффикса.
Примечание.…
Статьи
3 366
Дана окружность (координатами своего центра и радиусом) и прямая (своим уравнением). Требуется найти точки их пересечения (одна, две, либо ни одной).…
Статьи
2 686
Даны N отрезков на прямой, т.е. каждый отрезок задаётся парой координат (X1, X2). Рассмотрим объединение этих отрезков и найдём его длину.
Алгоритм был предложен Кли (Klee) в 1977 году. Алгоритм работает за O (N log N). Было доказано, что этот алгоритм является быстрейшим (асимптотически).
Описание…
Статьи
648
Даны два отрезка AB и CD (они могут вырождаться в точки). Требуется найти их пересечение: оно может быть пустым (если отрезки не пересекаются), может быть одной точкой, и может быть целым отрезком (если отрезки накладываются друг на друга).

Алгоритм

Работать с отрезками будем как с прямыми: построим…
Статьи
4 5 397
Принцип написания кода: от плохого к приемлемому, чтобы вам было понятно, как это работает
Буду признателен отзывам / критике и в принципе обратной связи, чтобы понимать:…
4 2 320

Bounce project: шаг 1 (мяч, его движение, второй закон Ньютона)

Принцип написания кода: от плохого к приемлемому, чтобы вам было понятно, как это работает
Буду признателен отзывам / критике и в принципе обратной связи, чтобы понимать:…
2 320
Дан неориентированный граф G с n вершинами и m рёбрами. Требуется найти в нём все компоненты связности, т.е. разбить вершины графа на несколько групп так, что внутри одной группы можно дойти от одной вершины до любой другой, а между разными группами — пути не существует.

Алгоритм решения:

Для…
Статьи
3 488
Даны два числа: n и k. Требуется посчитать, с какой степенью делитель k входит в число n!, т.е. найти наибольшее x такое, что n! делится на k^x.

Решение для случая простого k

Рассмотрим сначала случай, когда k простое.
Выпишем выражение для факториала в явном виде:
?? n! =…
Статьи
2 820
Пусть дан ориентированный или неориентированный граф без петель и кратных рёбер. Требуется проверить, является ли он ациклическим, а если не является, то найти любой цикл.
Решим эту задачу с помощью поиска_в_глубину за O(M).

Алгоритм

Произведём серию поисков в…
Статьи
2 431
В некоторых случаях необходимо считать по некоторому простому модулю p сложные формулы, которые в том числе могут содержать факториалы. Здесь мы рассмотрим случай, когда модуль p сравнительно мал. Понятно, что эта задача имеет смысл только в том случае, когда факториалы входят и в числитель, и в знаменатель…
Статьи
833
Поиск в глубину
Это один из основных алгоритмов на графах.
В результате поиска в глубину находится лексикографически первый путь в графе.
Алгоритм работает за O(N+M).

Применения алгоритма

  • Поиск любого пути в графе.
  • Поиск лексикографически первого пути в графе.
  • Проверка, является ли одна…
Статьи
1 356
Поиск в ширину (обход в ширину, breadth-first search) — это один из основных алгоритмов на графах.
В результате поиска в ширину находится путь кратчайшей длины в невзвешенном графе, т.е. путь, содержащий наименьшее число рёбер.
Алгоритм работает за O (n+m), где n — число вершин, m — число рёбер.
Описание…
2 7 326
Кодом Грея называется такая система нумерования неотрицательных чисел, когда коды двух соседних чисел отличаются ровно в одном бите.
2 3 744
Решето Сундарама — детерминированный алгоритм нахождения всех простых чисел до некоторого целого числа n. Разработан индийским студентом Сундарамом в 1934 году.
Статьи
952
Очередь (читается как Кью, а не Куэуэ) — структура данных с дисциплиной доступа к элементам «первый пришёл — первый вышел» (FIFO).
Добавление элемента (принято обозначать словом enqueue — поставить в очередь) возможно лишь в конец очереди, выборка — только из начала очереди (что принято называть словом dequeue — убрать из очереди), при этом выбранный элемент из очереди удаляется.
Статьи
847
Бинарное (двоичное) возведение в степень — это приём, позволяющий возводить любое число в n-ую степень за O(log n) умножений (вместо n умножений при обычном подходе).
Более того, описываемый здесь приём применим к любой ассоциативной операции, а не только к умножению чисел. Напомним, операция называется…
Статьи
4 5 697
Функция Эйлера phi (n) — это количество чисел от 1 до n, взаимно простых с n. Иными словами, это количество таких чисел в отрезке [1; n], наибольший общий делитель которых с n равен единице.
Статьи
5 451
Данный проект предназначет для публикаций всевозможных алгоритмов на любом из языков программирования (предпочтение отдается C++ / C# / Java / Javascript / Python)

Что такое алгоритм?

Алгоритмы окружают нас повсюду. По их принципам существует животный мир, люди,…
5 1 825

Итераторы и yield в C#

Пока вирусы и синяки гуляют по улице, расскажу вам про итераторы и не менее страшную вещь как yield. Достаточно непонятная и нечасто используемая тема у начинающих дотнет разработчиков. Итераторами можно отстрелить себе ногу, при этом, не поняв, что вообще происходит в округе. Го сюда
Статья
5 3 063

Атрибуты в C#

Атрибутами в C# являются классы, содержащие в себе некоторую метаинформацию, встраиваемую в сборку приложения.
Атрибуты могут применяться ко всем типам в C#, включая даже другие атрибуты, поля, методы, свойства и перечисления. Основу атрибутов составляет класс System.Attribute, от которого все предполагаемые классы…
Статья
1 2 938

Gods

Игрок передвигается по уровням, уничтожает врагов, открывает двери с помощью ключей и рычагов, подбирает различное оружие. В некоторые комнаты можно попасть только при помощи телепортации, для чего нужно найти вращающийся кристалл. Телепортация часто работает лишь в одну сторону и повторить её невозможно. В некоторых местах кристалл появляется для спасения игрока: при атаке множества монстров, при невозможности обойти опасный участок.
3 1 750

Работа с небезопасным кодом в C#

Язык C# поддерживает указатели, однако несколько ограниченно. Ограниченность заключается в том, что применение указателей не поощряют, поскольку справедливо считается, что это может повлиять на надежность как кода, так и среды выполнения в целом.
Указатель - это переменная, содержащая в себе адрес памяти, в которой…
Статья
16 8 008
Мы, Tensor Games — команда разработчиков, проектирующая игры преимущественно под Android и Windows.
На данный момент мы выпустили два приложения: это BlotTrip и Многофункциональный индикатор для DCS. Оба они были разминочными, а это значит, что полноценные приложения вы можете наблюдать в дальнейшем.
Все предпочтения и пожелания мы с радостью выслушаем от пользователей как нашей продукции, так и всего комьюнити XGM.guru
1 2 181

C# Делегаты и события

В данной статье рассматриваются базовые операции над делегатами, их производными и связующими.
Статья
7 5 444

Работа с файлами конфигурации приложения

В данной статье будет разобраны основы работы с конфигурационными файлами, секциями конфигурации и созданием своих конфигурационных разделов. Перед прочтением рекомендуется ознакомиться с языком разметки xml, индексаторами, свойствами, приведением типов и всем C# в целом.
Статья
15 10 153

Сериализация объектов в C#

В этой статье будет подробно разобрана сериализация/десериализация объектов, ее предназначение, форматы и случаи, где какой формат сериализации использовать.
Статья
13 19 188

Интерфейсы и с чем их едят

В этой статье буду рассмотрены основные моменты при использовании интерфейсов.
Перед прочтением рекомендуется ознакомиться с наследованием классов и преобразованиями типов объекта.
Статья
23 8 892

Simple Missile System

Система снарядов, в которую включены интересные возможности, отличающие её
от обычных систем.
Алгоритмы, Наработки и Способности
5 6 862

Обзор игры Bumpy

Обзор легендарной аркады 89-93 года Bumpy's Arcade Fantasy
Обзоры
1 2 938
`
ОЖИДАНИЕ РЕКЛАМЫ...