Нейросеть для решения задач по программированию | StudyCat
📧 Подтвердите ваш email, чтобы открыть все возможности StudyCat.

Нейросеть для решения задач по программированию: алгоритм и разбор кода

Алгоритм, рабочий код и проверка на данных — разложи задачу по слоям.

Покажи минимальный вход, на котором результат расходится с ожидаемым.

Разбор заданияПрограммирование
  1. На Python посчитай частоту слов в списке ['кот', 'код', 'кот'].

  2. StudyCat
    1. 1

      Заведи пустой словарь: ключ — слово, значение — число появлений.

    2. 2

      Для каждого слова возьми прежний счётчик или 0 и прибавь 1.

    3. 3

      После прохода у «кот» будет 2, у «код» — 1; выведи значения в заданном порядке.

    words = ['кот', 'код', 'кот']
    counts = {}
    for word in words:
        counts[word] = counts.get(word, 0) + 1
    print(counts['кот'], counts['код'])

    Вывод:

    2 1

    кот: 2; код: 1.

  3. Напомни, с чего начинается разбор?

  4. StudyCat

    Начнём с первого шага:

    Заведи пустой словарь: ключ — слово, значение — число появлений.

    Прочитать разбор целиком

Решить своё задание в чате

Начни с условия

Покажи минимальный вход, на котором результат расходится с ожидаемым.

Проследи рассуждение

В готовых примерах видны шаги и результат. Можно прочитать разбор целиком и вернуться к нужному месту.

Продолжи своим вопросом

Пришли своё задание, добавь попытку решения и отметь шаг, на котором нужна помощь.

От задания
к понятному ответу.

Программирование · Вуз. Посмотри, как устроен разбор, а затем попробуй повторить рассуждение самостоятельно.

Что добавить к своему заданию?

Покажи минимальный вход, на котором результат расходится с ожидаемым.

У каждого шага
есть смысл.
Спроси о непонятном.

Перейти к своему заданию
Двоичный поиск · алгоритмВуз

Найди индекс числа 7 в отсортированном списке [1, 3, 5, 7, 9] двоичным поиском. Индексы начинаются с нуля.

Индекс 3; алгоритму нужен отсортированный список.

Показать решениеСвернуть решение
  1. Середина диапазона 0…4 — индекс 2: значение 5 меньше 7, поэтому оставь правую часть 3…4.
  2. Новая середина — индекс 3: в нём находится 7.
  3. Верни 3. Условие while left <= right сохраняет возможность проверить диапазон из одного элемента.
def binary_search(items, target):
    left, right = 0, len(items) - 1
    while left <= right:
        mid = (left + right) // 2
        if items[mid] == target:
            return mid
        if items[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1

print(binary_search([1, 3, 5, 7, 9], 7))
3
SQL · группировкаВуз

Таблица orders(customer_id, amount) содержит строки (1, 100), (1, 50), (2, 80). Получи сумму заказов каждого клиента.

Клиент 1 — 150; клиент 2 — 80.

Показать решениеСвернуть решение
  1. Сгруппируй строки по customer_id: у клиента 1 две строки, у клиента 2 одна.
  2. Для каждой группы примени SUM(amount): 100 + 50 = 150 и 80.
  3. Добавь ORDER BY customer_id, чтобы порядок строк результата был явно задан.

sql

SELECT customer_id, SUM(amount) AS total
FROM orders
GROUP BY customer_id
ORDER BY customer_id;
customer_id | total
1 | 150
2 | 80

Есть своё решение?
Начни с него.

Покажи минимальный вход, на котором результат расходится с ожидаемым.

Укажи ограничения и среду: Python, SQL или другой язык.

Добавь свои шаги и напиши, в чём сомневаешься. Можно попросить подсказку или проверить отдельную часть рассуждения.

Теперь твоё задание.

Выбери пример запроса или сформулируй свой. Замени условие и требования на те, с которыми работаешь.

Вставь условие целиком. Фотографию можно прикрепить в чате.

Открыть чат и прикрепить фото

Хорошие вопросы.
Короткие ответы.

Всё, что полезно знать перед началом.

Что прислать, если программа падает?

Минимальный код, входные данные и полный текст ошибки. Укажи язык и версию, если это важно для задания.

Есть ли у примеров ожидаемый вывод?

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

Можно ли обсудить сложность алгоритма?

Добавь ограничения размера входа и попроси отдельно оценить время и память после объяснения решения.

Разберись в своём задании.

Пришли условие и начни с того места, где нужна помощь.

Разобрать мою задачу
Все инструменты для учёбы