Задать вопрос
Ответы пользователя по тегу Алгоритмы
  • Как решаются задачи этого типа?

    @JuniorNoobie
    Сижу в поддержке, пишу мелкие проекты
    Не знаю, поможет ли это тебе, но вот я попытался что-то решить по примеру. Результат выводится в консоль браузера (F12 -> Console). Получилась избыточная система уравнений, откуда можно найти Q, W, V, Z (я так понимаю, что X,Y,G,S - это для другого варианта или что это вообще?).

    А что это вообще за задание? Олимпиадное? Доступ к компьютеру нужен для решения или на листочке?
    Ответ написан
    1 комментарий
  • Алгоритм поиска последовательности выпадения числа. Возможно ли такое реализовать?

    @JuniorNoobie
    Сижу в поддержке, пишу мелкие проекты
    Используйте экстраполяцию. Получите таблицу со значениями x | f(x) = y, где x-время, y-число, f-искомая функция. Можете попробовать разные варианты: линейную функцию, экспоненциальную, степенную и т.д. Какая лучше будет ложиться, ту и исследуйте. Просто далеко не факт, что там лежит что-то настолько простое, чтобы подобрать через экстраполяцию.
    Ответ написан
    Комментировать
  • Генерация случайного математического выражения на основе результата?

    @JuniorNoobie
    Сижу в поддержке, пишу мелкие проекты
    Можете посмотреть такой пример функции.
    //функция возвращает список делителей числа
            public static List<int> getDenaminators(int num)
            {
                List<int> result = new List<int>();
                for (int i = 2; i < num - 1; i++)
                {
                    if (num % i == 0)
                        result.Add(i);
                }
                return result;
            }
            public static string Func(int num, int count)
            {
                List<int> deliteli = getDenaminators(num);
                Random rnd = new Random();
                int key;
                string numString = "", operString = "", resultString = "";
                int nextVal = 0;
                
                if (count == 0)
                    return num.ToString();
                if (deliteli.Count > 0)
                    key = rnd.Next(1, 5);
                else
                    key = rnd.Next(1, 4);
                
                switch (key)
                {
                    case 1:
                        {
                            nextVal = rnd.Next(1, num);
                            numString = (num - nextVal).ToString();
                            operString = "+";
                        } break;
                    case 2:
                        {
                            nextVal = rnd.Next(1, num);
                            numString = (num + nextVal).ToString();
                            operString = "-";
                        } break;
                    case 3:
                        {
                            nextVal = rnd.Next(1, 11);
                            numString = (num * nextVal).ToString();
                            operString = "/";
                        } break;
                    case 4:
                        {
                            nextVal = deliteli[rnd.Next(0, deliteli.Count)];
                            numString = (num / nextVal).ToString();
                            operString = "*";
                        } break;
                }
                if (count == 1)
                    resultString = String.Format("{0} {1} {2}", numString, operString, Func(nextVal, count - 1));
                else
                    resultString = String.Format("{0} {1} ({2})", numString, operString, Func(nextVal, count - 1));
                return resultString;
            }
    
            static void Main(string[] args)
            {
                Console.WriteLine(Func(1024, 6));
            }
    Ответ написан
    Комментировать
  • Как реализовать НЕ рентгеновское зрение "врагов" в игре?

    @JuniorNoobie
    Сижу в поддержке, пишу мелкие проекты
    А какой фигурой у вас описывается игрок?
    Можно брать точку обзора охранника (голова, глаза) и "выстреливать" прямыми, которые будут ограничиваться углом обзора. Если работать в полярной системе координат, то переносим начало координат в точку обзора, принимаем одну из сторон "треугольника обзора" за ось. Затем рисуем десять линий, которые выходят из начала координат и различаются лишь углом поворота. Причем все углы линий будут меньше, чем угол обзора.
    Теперь все просто: работаем с геометрией пересечений. Единственная сложность это выстроить элементы друг за другом так, как они идут в реальном мире.
    Ответ написан
    Комментировать
  • Генеалогическое дерево на C#?

    @JuniorNoobie
    Сижу в поддержке, пишу мелкие проекты
    Создать класс, содержащий имя, указатель на маму и указатель на папу. Думаю, этого хватит для построения генеалогического дерева. Такая штука очень хорошо реализуется на LISP.
    Ответ написан
    Комментировать
  • Какова математика компании подарочного маркетинга с игровой механикой?

    @JuniorNoobie
    Сижу в поддержке, пишу мелкие проекты
    Есть статистика продаж товаров? Можно посмотреть сколько продается, просуммировать. Эту сумму плюс 10-20% разделить на совокупную стоимость подарков. Получишь сколько нужно вложить реальных рублей, чтобы получить один "подарочный" рубль.

    Пример: Есть 10 товаров в магазине общей стоимостью 1000 рублей. Закупили подарки к акции стоимостью 60 рублей. Предположим, что по статистике мы продаем в месяц товаров на 200 рублей. Возьмем с запасом на 20% больше (вдруг, действительно, разбогатеют) и предположим, что ожидаем мы продаж на 240 рублей. Тогда, разделив 240 на 60, получим, что за каждые 4 потраченных рубля полагается 1 "подарочный" рубль. Теперь все цены можно делить на 4 и получать сколько бонусных баллов заработает покупатель, приобретя этот продукт. Округлять в меньшую сторону, естественно.
    Ответ написан
    Комментировать