Как стать автором
Обновить
4
0
Viktor Pti @Qbit

Пользователь

Отправить сообщение

Добавьте к ответам комментарии от авторов вопросов, пожалуйста?

Ну ладно, кто-то непонятно зачем закинул это туда

Задача суммирования двух чисел — это абсолютно стандартная задача на платформах с автоматическим тестированием; встречал её неоднократно. Она проверяет не способность реализовать алгоритм, а то, что новичок освоил платформу: запуск тестов, сабмит кода. С этой задачей можно экспериментировать: как поведёт себя платформа, если реализовать функцию заведомо неправильно, или зациклиться, и т.п.

Это веса, которые применяются ко входным аргументам нейронов.

А почему нельзя называть войну войной?

В каких-то контекстах может быть полезно трактовать войну как «спецоперацию» — такой формальный статус позволяет военнослужащим и тем более всяким росгвардейцам обоснованно отказываться ехать в «командировку».

«Проблема в том, что приказов об участии в боевых действиях на заграничной территории не существует, ведь у нас не введено военное положение. Военнослужащих просто ставят перед фактом — едем туда, открываем огонь там...»
https://zona.media/article/2022/04/06/ombudsman

в работах философа Кёртиса Брауна и специалистов по информатике Оскара Бонилла и Калида Азада

Что это за авторы, и какие работы имеются в виду?

Много причин. Но как минимум не хочется раздувать объём за счёт скачивания на клиент натренированной модели.

Но таким образом я сам регулирую игровой процесс.

Подобная логика применима только к однопользовательским играм «для себя».
К соревновательным играм такое оправдание не применимо.

Корневой сертификат — сердце центра сертификации. Он буквально встроен в вашу ОС или браузер, он физически присутствует на вашем устройстве.

Как программно проверить, когда протухнет корневой сертификат на Android-устройстве?

Почему разработчики Microsoft не разделили _entries на четыре массива, соответствующих полям Entry?

Чтобы оптимизировать локальность данных — снизить число кэш-миссов.

Человек, который мыслит рационально, как раз не ведётся на...

Человек, который мыслит рационально, как раз понимает, что он так же подвержен подобным манипуляциям и предубеждениям. Предсказуемая иррациональность. А иллюзия контроля, мол, я начитался Юдковского, Чалдини и Канемана а потому для искажений не уязвим — суть гордыня и проявление иррациональности.

Вот список того, что на 95% заменяет ReSharper

Не забудьте: Microsoft.CodeQuality.Analyzers, Microsoft.NetCore.Analyzers.

Причём Гудини родил т.н. «пушку Алехина» далеко не сразу.
https://www.youtube.com/watch?v=aj-K2o_RNXY

Каждая фигура, как вы правильно сказали, «дает ветвление не только своими ходами, но и тем, что мешает остальным». Т.е. каждая фигура на доске является источником увеличения размера пространства состояния.

Вы, кажется, пропустили фрагмент «мешает остальным». То есть уменьшает пространство поиска. У голого ферзя в центре доски без остальных фигур ходов больше, чем у всех 16 фигур/пешек вместе взятых в начальном положении.


Ещё раз: нет прямой монотонной зависимости между количеством фигур и фактором ветвления. Может быть мало ходов при большом количестве фигур и много ходов при малом количестве фигур.

Одновременно, потеря каждой фигуры «понемногу» сокращает размер пространства состояния.

В общем случае это не так — фигуры дают вклад в ветвление не только своими ходами, но и тем, что мешают друг друг.


Например, в стартовой позиции число допустимых ходов только увеличится, если выкинуть слонов.

По какому критерию?

Наследник в силах изменить поведение второго метода. А первого — не в силах.

Метод либо объективно полиморфный, либо объективно не полиморфный.

abstract class Pet
{
    public void NonPolymorphicNonVirtual()
    {
        Console.WriteLine("I'm pet");
    }

    public void PolymorphicNonVirtual()
    {
        Console.WriteLine($"{Virtual} {Virtual}");
    }

    protected abstract string Virtual { get; }
}

sealed class Cat : Pet
{
    protected override string Virtual => "Meow";
}

sealed class Dog : Pet
{
    protected override string Virtual => "Bow!";
}

...

{
    Pet pet = new Cat();
    pet.NonPolymorphicNonVirtual(); // I'm pet
    pet.PolymorphicNonVirtual(); // Meow Meow
}
{
    Pet pet = new Dog();
    pet.NonPolymorphicNonVirtual(); // I'm pet
    pet.PolymorphicNonVirtual(); // Bow! Bow!
}
В NonVirtual никакого полиморфизма нетути.

Он полиморфный по поведению, с точки зрения пользователя класса (которому недоступен виртуальный метод NonPublic() напрямую). Он был бы мономорфным, если бы использовал только функционал базового класса и не обращался к виртуальным методам, переопределённым в потомках.

Это если бы я использовал паттерн CRTP. А здесь полиморфизм на основе динамического связывания.

А где именно в вашем примере полиморфизм?

Cat cat = new Cat();
cat.NonVirtual();

Dog dog = new Dog();
dog.NonVirtual();

В обоих случаях вызывается один и тот же невиртуальный метод базового класса Pet.NonVirtual(). Но поведение будет разным, будет напечатано Meow и Bow!


Полиморфизм в методе public void NonVirtual() { NonPublic(); } Его реализация тут состоит из одного вызова, но может кроме этого содержать и какую-то общую для наследников логику. Паттерн Template method.

они выхотят на сцену, когда появляются указатели. virtual нужен, чтобы указатель на базовый класс...

Не совсем точно. Полиморфного поведения можно добиться, даже работая с конкретным классом наследника и невиртуальным API. Конечно, указатели на базовый класс появляются, но неявно. Идею проиллюстрирую на C#. Но на C++ то же самое, называется NVI; может работать просто через стековую переменную наследника, без явных ссылок/указателей.


abstract class Pet
{
    public void NonVirtual() { NonPublic(); }

    protected abstract void NonPublic();
}

sealed class Cat : Pet
{
    protected override void NonPublic() { Console.WriteLine("Meow"); }
}

sealed class Dog : Pet
{
    protected override void NonPublic() { Console.WriteLine("Bow!"); }
}

...

Cat cat = new Cat();
cat.NonVirtual();
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность