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

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

Алгоритм

Работать с отрезками будем как с прямыми: построим…
Статьи
@Msey: ScorpioT1000, это не мое. Там реализация довольно старая, но переписывать это все как-то влом 4 6.1K
Принцип написания кода: от плохого к приемлемому, чтобы вам было понятно, как это работает
Буду признателен отзывам / критике и в принципе обратной связи, чтобы понимать:…

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

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

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

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

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

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

Алгоритм

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

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

  • Поиск любого пути в графе.
  • Поиск лексикографически первого пути в графе.
  • Проверка, является ли одна…
Статьи
1.5K
Поиск в ширину (обход в ширину, breadth-first search) — это один из основных алгоритмов на графах.
В результате поиска в ширину находится путь кратчайшей длины в невзвешенном графе, т.е. путь, содержащий наименьшее число рёбер.
Алгоритм работает за O (n+m), где n — число вершин, m — число рёбер.
Описание…
@Msey: konvan5: Он следующий в очереди 2 8.6K
Кодом Грея называется такая система нумерования неотрицательных чисел, когда коды двух соседних чисел отличаются ровно в одном бите.
Решето Сундарама — детерминированный алгоритм нахождения всех простых чисел до некоторого целого числа n. Разработан индийским студентом Сундарамом в 1934 году.
Статьи
1.1K
Очередь (читается как Кью, а не Куэуэ) — структура данных с дисциплиной доступа к элементам «первый пришёл — первый вышел» (FIFO).
Добавление элемента (принято обозначать словом enqueue — поставить в очередь) возможно лишь в конец очереди, выборка — только из начала очереди (что принято называть словом dequeue — убрать из очереди), при этом выбранный элемент из очереди удаляется.
Статьи
875
Бинарное (двоичное) возведение в степень — это приём, позволяющий возводить любое число в n-ую степень за O(log n) умножений (вместо n умножений при обычном подходе).
Более того, описываемый здесь приём применим к любой ассоциативной операции, а не только к умножению чисел. Напомним, операция называется…
Статьи
@konvan5: Ev3nt: Я так понял, главный упор идёт на оптимизацию. В этом весь смысл) Чтобы быстрее работало. 4 6.8K
Функция Эйлера phi (n) — это количество чисел от 1 до n, взаимно простых с n. Иными словами, это количество таких чисел в отрезке [1; n], наибольший общий делитель которых с n равен единице.
Статьи
6.6K
Данный проект предназначет для публикаций всевозможных алгоритмов на любом из языков программирования (предпочтение отдается C++ / C# / Java / Javascript / Python)

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

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

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

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

Атрибуты в C#

Атрибутами в C# являются классы, содержащие в себе некоторую метаинформацию, встраиваемую в сборку приложения.
Атрибуты могут применяться ко всем типам в C#, включая даже другие атрибуты, поля, методы, свойства и перечисления. Основу атрибутов составляет класс System.Attribute, от которого все предполагаемые классы…
Статья
@Clamp: Ятп, это аналог аннотаций в яве? 2 3.2K

Gods

Игрок передвигается по уровням, уничтожает врагов, открывает двери с помощью ключей и рычагов, подбирает различное оружие. В некоторые комнаты можно попасть только при помощи телепортации, для чего нужно найти вращающийся кристалл. Телепортация часто работает лишь в одну сторону и повторить её невозможно. В некоторых местах кристалл появляется для спасения игрока: при атаке множества монстров, при невозможности обойти опасный участок.
Держу вас в куре. А все почему?
Потому что этот ресурс мне приносит меньше пользы и больше вреда
Потому что там твоей свободой слова подтирают попу (да и не только там)
Потому что, чтобы поменять личные данные, нужно формально приложить отпечатки твоих ягодиц, между которыми ребятки из отдела Э могли бы подобрать…
Упрощённый ресурс
421
Это информационное табло для себя самого.
Задача: ознакомиться с синтаксисом пайтона за 10 дней.
Для чего? Хочу применить модули pygame и написать простенькую игру.
Упрощённый ресурс
421

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

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

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

В данной статье рассматриваются базовые операции над делегатами, их производными и связующими.
Статья
@Devion: даже базовый тип ничего не сделает, т.к. под капотом 'i' будет находиться в экземпляре делегата, и это будет один и тот же экземпляр во всех элементах списка. На выходе компилятора будет примерно вот такое: Скопировать в буфер public void Do() { List<Action> actionList = new List<Action>(); DisplayClass displayClass = new DisplayClass(); for (displayClass.i = 0; displayClass.i < 3; displayClass.i++) { actionList.Add(new Action((object) displayClass, __methodptr(<Do>b__0))); } } [CompilerGenerated] private sealed class DisplayClass { public int i; internal void <Do>b__0() { Console.Write((object) this.i); } } т.к. вся лямбда внутри контекста захваченных переменных будет формировать отдельный класс то по факту замыкания не будет, если вынести лямбду в отдельный от цикла метод. Так же можно создать переменную со значением и записать туда i, и уже эту переменную прокинуть в лямбду, в этом случае будет создаваться отдельный экземпляр делегата каждый виток цикла (но в старых версиях компилятора это будет работать иначе, что вроде как баг, ибо для пользователя оно по факту должно выглядеть как "передача ссылки"). Бтв, тут всплывает тема с аллокацией, т.к. как ты можешь заметить создание экземпляра каждый виток цикла это дичь ) 7 5.6K

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

В данной статье будет разобраны основы работы с конфигурационными файлами, секциями конфигурации и созданием своих конфигурационных разделов. Перед прочтением рекомендуется ознакомиться с языком разметки xml, индексаторами, свойствами, приведением типов и всем C# в целом.
Статья
@ScorpioT1000: Devion, его форсили, т.к. была libxml, а кроме неё ничего не было, только всякие бомжовские ini 15 10.6K

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

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

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

В этой статье буду рассмотрены основные моменты при использовании интерфейсов.
Перед прочтением рекомендуется ознакомиться с наследованием классов и преобразованиями типов объекта.
Статья
`
ОЖИДАНИЕ РЕКЛАМЫ...
Scroll Lock - быстрая модерация